2013-07-23 29 views
1

我在想,當最前面的窗口切換到另一個窗口時,Mac OS X中是否有方法接收通知 - 無論是Objective-C解決方案還是Python ,或AppleScript,或其他。我想看看整個系統,而不僅僅是在我的應用程序中。我的應用程序試圖跟蹤用戶當前正在處理的文件,並且我有一個輪詢解決方案,通過運行AppleScript可以經常獲取最前面的應用程序和最前面的窗口,但如果我可以運行該程序,它會簡化我的生活只有當我知道最前面的窗戶已經改變時才檢查。Mac OS X - 當最前面的窗口發生變化時收到通知

我也看過NSDistributedNotificationCenter和NSEvents的全局事件監視器,它們都以不同的方式有用,但似乎不能給我特定的前窗改變通知,我很理想地尋找。

任何想法我應該嘗試,或者這是否甚至可能,將不勝感激!

回答

1

我不知道在窗口更改時獲取通知的方法,但是在objective-c中,當應用程序級別發生事件時,您可以獲得通知。這可能會幫助你。

您想爲NSWorkspace註冊通知...

[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(nsworkspaceNotification:) name:nil object:nil]; 

看那NSWorkspace類文檔通知的底部。一些可以幫助你的是:NSWorkspaceDidLaunchApplicationNotification,NSWorkspaceDidActivateApplicationNotification,NSWorkspaceDidDeactivateApplicationNotification,NSWorkspaceDidHideApplicationNotification,NSWorkspaceDidUnhideApplicationNotification。可能有其他人。

祝你好運。

+0

謝謝你的提示!這看起來對我來說可能非常有用。這些是系統範圍的通知,對嗎? – ekl

相關問題