2013-04-03 74 views
0

我已經註冊了,像這樣的AXObserver:AXObserverCallback元素參考

AXObserverCreate(pid, axObserverCallback, &_observer); 

這是回調方法:

static void axObserverCallback(AXObserverRef observer, AXUIElementRef elementRef, CFStringRef notification, void *self) { .. } 

這就是我如何添加一個通知:

 AXObserverAddNotification(_observer, app, kAXFocusedWindowChangedNotification, self); 

我注意到的是,添加到觀察者(用於通知)的元素(在上面的例子中是「app」)似乎沒有相應的找到在觀察者回調(「elementRef」)中設置的那個。它看起來像是一個副本?至少我不能將它們與==比較,如果我NSLog它們顯示不同的地址。

有什麼辦法比較AXUIElementRefs是副本嗎? (這是正常的行爲,返回一個副本,而不是原來的?)

回答

0

像所有的核心基金會對象,AXUIElementRefs應該使用CFEqual()進行比較,而不是通過檢查指針相等。