来自.NET背景我已经习惯了被解雇的事件,因此捕获丢失的焦点事件很容易,但我不确定如何在Obj-C中执行此操作.基本上我希望我的应用程序知道另一个应用程序何时获得了关注并且它不再具有它以便它可以执行某些操作.
你能告诉我如何在Obj-C中为OSX应用程序实现这种功能吗?
看看NSWindow通知.具体来说,你对NSWindowDidBecomeKeyNotification和感兴趣NSWindowDidResignKeyNotification.您还可以创建一个委托的窗口和实施其windowDidBecomeKey:和windowDidResignKey:方法,为中指出的NSWindowDelegate协议文档.
或者,如果您只是想知道应用程序(不是窗口)何时获得焦点,您可以订阅NSApplicationDidBecomeActiveNotification.同样,NSApplicationDidResignActiveNotification当您的应用失去焦点时,它会通知您.这里将更详细地讨论这些通知.您还可以实现applicationWillBecomeActive:和applicationWillResignActive:在应用程序委托.