NSWindow появляется под другими окнами, несмотря на «makeKeyAndOrderFront» - PullRequest
1 голос
/ 13 октября 2019

Есть много примеров того, как создать NSWindow на SO, которые, когда я пробую их на Catalina, не совсем работают. Я вижу, что drawRect вызывают для моего представления, и приложение, кажется, ожидает событий, но окно появляется под другими окнами, несмотря на мое использование "makeKeyAndOrderFront". Что может вызвать это?

Что-то изменилось с Каталиной?

int main() { 
    NSAutoreleasePool *pool = [[NSAutoreleasePool  alloc] init];
    [NSApplication sharedApplication];
    MyAppDelegate *delegate = [[MyAppDelegate alloc] init];
    NSApp.delegate = delegate;
    [NSApp run];
    [delegate release];
    [pool release];
    return 0; 
}

- (void) applicationDidFinishLaunching: (NSNotification *) notification{
    NSRect frame = NSMakeRect(0, 0, DEFAULT_WINDOW_WIDTH, DEFAULT_WINDOW_HEIGHT);
    NSWindow *window = [[NSWindow alloc] initWithContentRect: frame
                        styleMask:NSBorderlessWindowMask
                        backing: NSBackingStoreBuffered
                        defer: NO
        ];
    self.window = window;
    self.view = [[MyView alloc] init];
    self.window.contentView = self.view;
    self.window.delegate = self;
    [self.window makeKeyAndOrderFront: nil];
}

Кроме того, в доке не отображается значок нового окна.

...