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是副本嗎? (這是正常的行爲,返回一個副本,而不是原來的?)