macOS Event Class事件
macOS Event Class事件

macOS Event Class事件

在 Apple Events 体系中,每个事件由Event Class(事件大类) + Event ID(具体动作)确定,Event Class 表示功能域/模块,Event ID表示具体操作。

底层是 4 字节标识(FourCharCode),例如:

'aevt' → Core Event Class
'GURL' → Get URL

在Swift中表现为:

typealias AEEventClass = UInt32
typealias AEEventID    = UInt32

系统会根据这两个值把事件路由给正确的处理器。

常用Event Class分类

1、系统核心事件:kCoreEventClass,用于Finder、系统生命周期、文件打开。

常见 Event ID:

kAEOpenDocuments,打开文件(Finder 双击)。

kAEOpenApplication,启动 App。

kAEPrintDocuments,打印。

kAEQuitApplication,退出 App。

kAEReopenApplication,Dock 重新打开。

2、kInternetEventClass:互联网/URL相关事件,通过 yourapp:// 打开主 App。

常见 Event ID:

kAEGetURL,打开 URL Scheme(深层链接)。

3、kAECoreSuite:AppleScript核心套件,用于对象模型操作:get、set、delete,普通 GUI App 很少直接处理。

4、kAERequiredSuite:AppleScript必需套件,包含:open、print、quit,通常由系统自动处理,很少手写 handler。

5、kAEMiscStandards:杂项标准事件,如:激活、选择、显示UI,实际开发中极少使用。

6、自定义Event Class:自定义私有事件:

let myClass = AEEventClass(0x4D594150) // 'MYAP'
let myID    = AEEventID(0x444F5441)    // 'DOTA'

用于:旧式App私有通信,自动化工具,现代更推荐XPC。

总结

Event Class 是 Apple Events 中用于划分“事件功能域”的 4 字节标识,与 Event ID 一起构成 macOS 进程间通信的指令地址。

相关文章

1、SwiftUI配置深层链接

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注