我正在创建一个用户必须与一个窗口进行交互的应用程序,当他们按照他们想要的方式配置该窗口时,他们切换到另一个应用程序,然后我的应用程序将开始执行其他我将定义的内容在一个方法
对于一个示例程序,当主窗口具有焦点时,它包含一个标有“我正在聚焦”的标签,当用户点击桌面或其他窗口/应用程序时,标签将显示为“我没有聚焦”。
由于
答案 0 :(得分:11)
[NSWindow isKeyWindow]
可能就是你要找的东西。
指示窗口是否是应用程序的关键窗口。
- (BOOL)isKeyWindow
如果窗口是应用程序的关键窗口,则返回值YES;否则,没有。
如果您想要检测您的窗口何时成为密钥或何时无法成为密钥,请查看NSWindowDidBecomeKeyNotification
和NSWindowDidResignKeyNotification
通知。
答案 1 :(得分:11)
这与关键窗口不同。关键窗口意味着您将收到应用程序的输入事件。您想知道的是您的应用程序是否在前台。您要查找的是NSApplication
通知NSApplicationDidBecomeActiveNotification
和NSApplicationDidResignActiveNotification
。观察那些在您的应用程序处于或不处于前台时发现的情况。将自动调用您的应用程序代理applicationDidBecomeActive:
和applicationDidResignActive:
。