【发布时间】:2010-03-19 22:49:55
【问题描述】:
有没有办法让我的应用程序的窗口接收键盘和/或鼠标事件(即用户单击窗口的按钮),同时仍将焦点保留在另一个不相关的应用程序上?
我尝试在不同级别配置我的窗口,包括 [myWindow setLevel:NSPopUpMenuWindowLevel] 无济于事。
【问题讨论】:
标签: objective-c cocoa nswindow appkit nsevent
有没有办法让我的应用程序的窗口接收键盘和/或鼠标事件(即用户单击窗口的按钮),同时仍将焦点保留在另一个不相关的应用程序上?
我尝试在不同级别配置我的窗口,包括 [myWindow setLevel:NSPopUpMenuWindowLevel] 无济于事。
【问题讨论】:
标签: objective-c cocoa nswindow appkit nsevent
您应该能够通过发送NSApp a preventWindowOrdering message 然后返回YES 使您的视图(至少是处理鼠标点击的视图)响应acceptsFirstMouse: messages 来处理鼠标点击,而无需将窗口放在前面。
您不应该让您的应用在没有将自身排序在前面的情况下处理打字。如果正在出现的字段被另一个窗口遮住,用户可能不会意识到他们正在输入的内容。
【讨论】:
找到了。简单,但难以捉摸。
使用 NSPanel 并确保面板样式为非激活 (NSNonactivatingPanelMask) 或在 IB 的检查器中勾选相同的选项。
【讨论】: