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; }

最佳答案

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

成功了

关于cocoa - 无边框子 NSWindow 未获取事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7666763/

相关文章:

objective-c - 运行 OS X 应用几天后 EXC_BAD_INSTRUCTION (SIGILL) 崩溃

cocoa - 如果我尝试将项目替换为不同的卷,replaceItemAtURL 将不起作用

objective-c - NSView 子类 - drawRect : not called

objective-c - 如何在 Cocoa 应用程序中将 NSView 添加到 NSWindow?

objective-c - NSTextfield 不接受具有 NSTitledWindowMask 的 NSWindow 上的键事件

ios - 为 NSURLConnection 委托(delegate)保持线程事件

objective-c - 从计时器处理程序 cocoa 发送通知

cocoa - 在操作完成之前只允许选择一个 NSWindow (Cocoa)

objective-c - 如何让 NSWindow 在没有焦点的情况下处理 mouseDown 事件?

cocoa - 如何定位 Cocoa 窗口以尽量减少与其他窗口的重叠?