首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Swift中使用AXObserverAddNotification?

如何在Swift中使用AXObserverAddNotification?
EN

Stack Overflow用户
提问于 2018-02-16 19:29:15
回答 1查看 437关注 0票数 2

如何使用Swift中的AXObserverAddNotification检测UI更改?

在Obj C中有一个很好的答案。

How can my app detect a change to another app's window?

如何翻译Swift的答案?

下面的测试代码编译并运行时没有错误,但当我更改主窗口时,callBack似乎没有执行。

代码语言:javascript
运行
复制
    func observe(app:pid_t, element:AXUIElement) {
        var observer: AXObserver? = nil
        func callBack(observer: AXObserver?, element: AXUIElement?, notification: CFString, refcon: UnsafeMutableRawPointer?) {
            print("Fired! \(notification)")
        }
        if AXObserverCreate(app, callBack, &observer) == .success {
            print("AXObserverCreate success!")
            if AXObserverAddNotification(observer!, element, kAXMainWindowChangedNotification as CFString, UnsafeMutableRawPointer(Unmanaged.passRetained(self).toOpaque())) == .success {
                print("AXObserverAddNotification success!")
                CFRunLoopAddSource(CFRunLoopGetCurrent(), AXObserverGetRunLoopSource(observer!), .defaultMode)
                print("Watching \(element.value(of:"AXTitle"))")
            }
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2020-07-17 04:12:55

@kyo-ago在将这些类似C的swift API封装在他的project中方面做得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48825816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档