2012-12-31 65 views
2

现在我正在开发一个状态栏应用程序,我需要知道应用程序何时失去焦点,每次。所以我目前使用的是applicationDidResignActive:,但是当我打开另一个状态栏应用程序的菜单时,这并没有引起注意。
即使打开另一个状态栏应用程序,每次我的应用程序失去焦点时,如何才能使applicationDidResignActive:(或任何其他方法)捕获?如何使状态栏应用程序捕获“applicationDidResignActive:”与其他状态栏应用程序?

+0

如果您正在监听NSApplicationNotifications(将隐藏/取消隐藏而不是resignActive),它会有帮助吗?https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSApplication_Class/Reference/ Reference.html#// apple_ref/doc/uid/20000012-BAJDHBID(ps:我没有做任何Mac OS编程,但在iOS上,我发现UIApplicationNotificaitions更有帮助) –

回答

3

我想你实际上是在寻找什么时候窗户失去焦点。

您可以使用以下方法NSWindowDelegate

windowDidResignMain: 

您还可以设置canBecomeMainWindowYES

- (BOOL)canBecomeMainWindow { 
    return YES; 
} 

确保将其连接到委托和你应该罚款。

+0

对不起,已经做到了,它不工作。当我打开另一个状态栏应用程序的菜单时,我没有收到任何通知 –

+0

您是否连接了代表? – NSAddict

+0

是的,我已经连接了代理 –

相关问题