无边框的子NSWindow无法接收事件

3

我用这段代码创建了一个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; }

请继续发布您的编辑作为答案。 - Grady Player
1个回答

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

做到了,解决了问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接