我使用NSWorkspace的NSWorkspaceDidActivateApplicationNotification
來檢測活動應用程序何時更改。我從通知的userInfo鍵中獲得NSRunningApplication
。通知OS X上的活動文檔更改?
我需要在活動文檔更改時收到通知。我可以通過使用可訪問性框架的NSAccessibilityDocumentAttribute
密鑰AXUIElementCopyAttributeValue()
來獲取活動文檔。
我需要一種更準確的方式來檢測文檔何時改變而不是輪詢。一些應用程序使用多個窗口,而另一些應用程序使用單個窗口和多個選項卡使用選項卡式應用程序時,窗口返回當前查看的文檔。
我不必使用輔助功能框架。 AppleScript(腳本橋)似乎也能夠獲得一個窗口的文檔,但可訪問性框架似乎與更多的應用程序一起工作。
我只關心活動應用程序的活動窗口的活動文檔。目前關注的是該系統。
我一直在測試Sublime Text 2和Xcode等應用程序。 Sublime返回當前選定的選項卡,其中Xcode返回活動項目。
這可能是不使用輔助功能框架的最佳方法。不幸的是,你仍然需要輪詢,而這不會給你當前文件的URL。但對於MAS來說,似乎是唯一的方法。 – Luke
是的,我也這麼認爲。如果你想出其他東西,請讓我知道:) – Mikael