Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Swift中使用AXObserverAddNotification?

如何在Swift中使用AXObserverAddNotification?
EN

Stack Overflow用户
提问于 2018-02-16 11: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
运行
AI代码解释
复制
    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-16 20:12:55

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

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

https://stackoverflow.com/questions/48825816

复制
相关文章
如何在 Swift 中自定义操作符
很少有Swift功能能和使用自定义操作符的一样产生如此多的激烈辩论。虽然有些人发现它们真的有用,可以降低代码冗余,或实施轻量级语法扩展,但其他人认为应该完全避免它们。
Swift社区
2021/11/26
1.2K0
如何在Java和Swift中避免空引用异常?
您最近在代码中遇到过NullPointerException(空指针异常)吗? 如果没有,那你一定是一个很细心的程序员。在Java应用程序中最常见的异常类型之一就是NullPointerExcepti
程序你好
2018/08/01
2.7K0
如何在Java和Swift中避免空引用异常?
【沙龙干货】如何在实际工程中使用Swift开发?
Swift语言有什么优势?跟Objective-C有什么不同?腾讯攻城狮来揭开它的神秘面纱。 腾讯Bugly移动开发者沙龙 第二期:快速发展的Swift是否将淘汰Objective-C? 【分享内容】如何在实际工程中使用Swift开发? 随着Swift语言的推出和发展,越来越多的开发者开始把目光投向Swift。但是从现状看,Swift的使用并不广泛,这也让Swift在无形中多了一点神秘。在本次沙龙中,将从语法层面和工程应用方面对Swift进行简单介绍,揭开Swift的神秘面纱。 【分享嘉宾】 陈曦
腾讯Bugly
2018/03/22
9870
【沙龙干货】如何在实际工程中使用Swift开发?
swift中Dictionary的grouping by使用
今天在写一个功能的时候用到了Dictionary 的 grouping by 这个用法,代码先贴出来
全栈程序员站长
2022/09/24
7880
如何在 Swift 中取消一个后台任务
Swift 5.5中引入的 async/await 语法,允许用更可读的方式来编写异步代码。异步编程可以提高应用程序的性能,但必须取消不需要的任务,以确保不需要的后台任务不会干扰到应用程序。本文演示了如何明确地取消一个任务,并展示了子任务是如何自动取消的。
韦弦zhy
2023/03/12
2.8K0
如何在 Swift 中取消一个后台任务
ModuleMap C 在swift中的使用
swift 有UNSafePoint的概念,但是不能够与C/C++直接交互,但是对于C/C++模块操作就需要进行一些改进那就是今天的主角moulemap啦。 要想使用你自己的C/C++按照 import的方式在swift使用那么你需要经历以下几个简单配置 1 当然是将对应的C/C++源码文件导入到swift项目中 2 配置modulemap啦 3 import 使用啦
大话swift
2019/07/04
3K0
ModuleMap C 在swift中的使用
窥探Swift之使用Web浏览器编译Swift代码以及Swift中的泛型
   有的小伙伴会问:博主,没有Mac怎么学Swift语言呢,我想学Swift,但前提得买个Mac。非也,非也。如果你想了解或者初步学习Swift语言的话,你可以登录这个网站:http://swift
lizelu
2018/01/11
1.4K0
窥探Swift之使用Web浏览器编译Swift代码以及Swift中的泛型
ProtocolBuf Swift 使用
ProtocolBuf Swift 使用 环境搭建 Mac安装swift-protobuf brew install swift-protobuf 使用Podfile集成Xcode 再Podfile里添加 pod 'SwiftProtobuf' 然后在此目录下打开terminal运行 Pod install 使用 新建BookInfo.proto syntax = "proto3"; message BookInfo { int64 id = 1; string title = 2; s
莫空9081
2021/03/01
1.9K0
使用 Swift Package Manager 创建 Swift 包
image.png Using the Package Manager 官网 https://swift.org/getting-started/#using-the-package-manager 进入准备创建 Swift 包文件位置 image.png 创建新的Swift包,首先要创建并输入一个名为的目录 perfect-Qiniu: image.png 进入刚才创建的 perfect-Qiniu 文件
LeeCen
2018/10/11
1.4K0
使用 Swift Package Manager 创建 Swift 包
Swift中? 、! 和 ??
Swift中是可以声明一个没有初始值的属性, Swift中引入了可选类型(Optional)来解决这一问题。它的定义是通过在类型声明后加一个 ? 操作符完成的。 例如: var name: Stri
赵哥窟
2020/08/17
1.6K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
29.2K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
Swift 中的 MainActor 使用和主线程调度
MainActor 是Swift 5.5中引入的一个新属性,它是一个全局 actor,提供一个在主线程上执行任务的执行器。在构建应用程序时,在主线程上执行UI更新任务是很重要的,在使用几个后台线程时,这有时会很有挑战性。使用@MainActor属性将帮助你确保你的UI总是在主线程上更新。
韦弦zhy
2022/11/14
3.5K0
Swift 中的 MainActor 使用和主线程调度
swift使用NSClassFromString
/// 在swift中使用NSClassFromString className要加工程名前缀 /// /// - Parameter className: className func swiftClassFromString(className: String) -> AnyClass! { // get the project name if let appName: String = Bundle.main.object(forInfoDictionaryKey: "CFBundl
用户6094182
2019/08/23
8300
[Swift] Swift 中的遍历
上一篇曾经说过,2020 年我接触了项目管理、iOS 开发、goLang 开发,所以,后续更新的内容也会逐步丰富起来。
CnPeng
2021/01/18
3.3K0
[Swift] Swift 中的遍历
Swift中的for循环
前言 任何语言中最常用的就是for循环了 但是Swift的for循环语法一直在变 基本遍历 //0到9 for i in (0..<10) { print(i) } //0到10 for i in (0...10) { print(i) } 反向遍历 for i in (0..<10).reversed() { print(i) } 数组遍历 for item in list { print(item) } 数组遍历 获取索引 for (index, element) in
码客说
2019/10/22
5.6K0
Swift 中的 async/await
async-await 是在 WWDC 2021 期间的 Swift 5.5 中的结构化并发变化的一部分。Swift中的并发性意味着允许多段代码同时运行。这是一个非常简化的描述,但它应该让你知道 Swift 中的并发性对你的应用程序的性能是多么重要。有了新的 async 方法和 await 语句,我们可以定义方法来进行异步工作。
韦弦zhy
2022/11/11
3.5K0
Swift 中的 async/await
Swift 中的 Task
Swift 中的 Task 是 WWDC 2021 引入的并发框架的一部分。任务允许我们从非并发方法创建并发环境,使用 async/await 调用方法。
韦弦zhy
2022/11/11
3.4K0
Swift 中的 Task
swift中array、dictionary内存布局swift中array、dictionary内存布局
1、array的内存布局 2、Dictionary内存布局 key、value的链表中的值并非连续存在内存中;
用户8893176
2021/08/09
6710
swift中array、dictionary内存布局swift中array、dictionary内存布局
Swift 日常使用Tip
Swift中的Struct都有个系统提供默认的包含所有成员遍量的init方法,如果我们添加自定义的init方法时,系统默认提供的就会消失,如果需要既可以保留系统默认的init方法,又需要添加自定义的init,可以使用一个小技巧:将自定义的init方法写在Struct的extension中
代码行者
2018/08/23
9300
Swift  日常使用Tip
点击加载更多

相似问题

如何在Swift中封装UIViewController (如UIAlertController)?

12

如何在swift中初始化对象数组,如UILabel

24

swift if或/and语句,如python

20

使用泛型将响应封装在Kotlin中,如swift

245

在Swift中使用常量,如Objective-C

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文