NSWindow 和 setLevel,无法使 "on top" 功能正常工作

NSWindow and setLevel, cant' get "on top" functionality working

当两个 windows 靠得很近时,您可以将它们合在一起(window 管理员自动更正 windows position/sizes 并将它们合在一起,见附图)

NSWindows 级别:

[Window setLevel:kCGBaseWindowLevelKey]

我希望 window 始终位于顶部并可捕捉。我可以通过以下方式实现“顶层”功能:

[Window setLevel:kCGScreenSaverWindowLevelKey];

但是,现在 window 无法捕捉。我怎样才能同时拥有可捕捉和“在顶部”。 window层级我都试过了,只有一个层级可以snapable,就是kCGBaseWindowLevelKey

找到答案。 两个windows在同一地点不同等级

可以创建一个 window 具有 window 级别 kCGBaseWindowLevelKey 的不可见 window 并将其放在具有 kCGScreenSaverWindowLevelKey 级别的 window 正下方。两个windows在同一个地方不同等级

- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSWindowStyleMask)windowStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation
{
    if (self = [super initWithContentRect:contentRect styleMask:NSWindowStyleMaskBorderless backing:NSBackingStoreBuffered defer:NO])
    {
        [self setBackgroundColor:[NSColor clearColor]];
    }
    
    return self;
}