在对 carbon 应用进行现代化改造的过程中,我想重写 Cocoa 中对 AppleEvents 的处理,特别是因为我发现 Carbon AEFunctions 非常难看。
我找到了 NSAppleEventDescriptor 但我对如何从 AppleEvent* 创建一个以便更轻松地访问其元素感到困惑。
在对 carbon 应用进行现代化改造的过程中,我想重写 Cocoa 中对 AppleEvents 的处理,特别是因为我发现 Carbon AEFunctions 非常难看。
我找到了 NSAppleEventDescriptor 但我对如何从 AppleEvent* 创建一个以便更轻松地访问其元素感到困惑。
一个AppleEvent
是一个AERecord
是一个AEDescList
是一个AEDesc
。因此,您可以创建一个NSAppleEventDescriptor
using -initWithAEDescNoCopy:
.
也就是说,如果您在 Cocoa 中编写 Apple 事件处理程序,那么您应该使用-[NSAppleEventManager setEventHandler:andSelector:forEventClass:andEventID:]
. 然后,您的处理程序方法将接收 aNSAppleEventDescriptor
作为参数,您不必担心从AppleEvent
.