2010-07-14 44 views
1

我正在Cocoa中開發一個應用程序,它允許用戶在OS X中的任何給定窗口上繪圖。當拖動屏幕時,圖形隨相應的窗口一起移動。爲了完成圖形與下方窗口(及其內容)之間的這條連線,我想從窗口捕捉滾動事件,以便對圖形的定位/可視性作出反應。如果其他應用程序收到滾動事件,是否有可能獲得通知?

舉例:

用戶打開Safari並瀏覽網頁。在特定的網站上,他/他圍繞鏈接繪製一個圓圈,並手寫筆記(這些都被視爲繪圖,通過手寫板輸入)。之後他/她移動窗口,圖紙也被移動,以便它們保持在網站鏈接的頂部。然後他/她開始滾動網站,並且鏈接的位置發生變化(向上移動直到它位於視口之外)。

現在我想捕捉該事件,並將圖層與圖紙一起移動以保持鏈接的頂部。當鏈接不再可見時,我會關閉圖形的可見性,並在滾動將鏈接重新帶回到視口時重新打開。

我知道這是一個非常棘手的任務,能夠攔截來自另一個應用程序的這些事件也可能被認爲是操作系統的安全缺陷,但也許有人在那裏是足夠好的編碼器給我一個提示......: )

Cocoa Accessibility類可能會有幫助,但直到現在我還沒有找到解決方案。

感謝您的幫助。

哦,如果這不是棘手的你,也許你能告訴我如何在Safari瀏覽器切換選項卡,以通知;)

kkthxbai

回答

2

我不知道,如果你可以監視滾動事件。但是,如果您只是使用Accessibility API監視鏈接的位置,則會更容易。

只要持有該鏈接的參考,並不斷輪詢它的位置,如果位置改變,你就知道該怎麼做。

您也可以嘗試使用AXObserverAddNotification,但據我所知,沒有通知可以監視位置更改。

如果您還沒有發現它,Accessibility Inspector可以幫助您識別使用Accessibility API可以獲得的東西,而pfiddlesoft的UI Browser允許您註冊通知。

相關問題