дочернее NSWindow без границ не получает события

#cocoa #nswindow

#cocoa #nswindow

Вопрос:

Я создаю NSWindow с помощью этого кода, но я не получаю для него никаких событий мыши или клавиатуры:

 window = [[OverlayWindow alloc] initWithContentRect:bounds styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];
[parentWindow addChildWindow:window ordered:NSWindowAbove];
NSView * rootView = [[OverlayView alloc] init];
[window setOpaque:NO];
[window setBackgroundColor:[NSColor clearColor]];
[window setContentView:rootView];
[window setIgnoresMouseEvents:NO];
[self reshapeToRect:bounds];
  

и в OverlayWindow:

 - (BOOL) canBecomeKeyWindow { return YES; }
- (BOOL) canBecomeMainWindow { return YES; }
- (BOOL) acceptsFirstResponder { return YES; }
- (BOOL) becomeFirstResponder { return YES; }
- (BOOL) resignFirstResponder { return YES; }
  

Комментарии:

1. Продолжайте и опубликуйте свое редактирование в качестве ответа

Ответ №1:

 [window orderWindow:NSWindowAbove relativeTo:[parentWindow windowNumber]];
  

сделал трюк