我的应用程序有一些原始数据内容,我希望能够提供给 AppleScript,以便至少可以查看它,即使不能通过将其保存到文件或将其设置为支持它的其他对象来处理。
现在,我不明白使用哪种数据类型来实现这一点。
例如,查看脚本编辑器的输出:
tell application "Script Editor"
the clipboard as record
--> {Unicode text:"text",
«class BBLM»:«data BBLM6C6C756E»,
string:"text"}
end tell
如何返回这些“数据...”,它们显然是实际数据的 4 字符代码和十六进制字符串编码字节的组合。
我尝试从我的可编写脚本的属性返回包含原始字节数据的 NSData 对象,但这不起作用。
更新
看来这与实现 scripting<type>Descriptor
有关和scripting<type>WithDescriptor
。除了在 Sketch 示例代码中使用之外,我找不到任何相关文档。我假设如果我碰巧在 Sdef 中定义了这样的自定义类型,则会为该类型调用这些函数。
但是:我不会提前知道要发送的类型,因此我无法在 Sdef 中预先定义它们。我的情况更类似于the clipboard
:我想要返回类似剪贴板的数据,所以我在运行时只知道它们的 4 个字符类型。这意味着我不会被这些处理程序询问。必须有其他一些方法来一般地创建和接收这些类型,就像剪贴板实现的方式一样。
最佳答案
回复:“...实现脚本
首先要从 Cocoa 脚本指南 (2008) 中的“键值编码和 Cocoa 脚本”部分开始。有很多方法将类型嵌入到方法名称中。许多内容也记录在基金会的 NSScriptKeyValueCoding 协议(protocol)引用页面中,但您必须阅读“讨论”部分才能找到它们。例如,在:
- (id)valueWithUniqueID:(id)uniqueID inPropertyWithKey:(NSString *)key
讨论说:“方法 valueIn
因此,在 Widgets 类中,您将实现 valueInWidgetsWithUniqueID:
scripting
scriptingRGBColorDescriptor
由以下方法调用:
NSObject(NSScriptAppleEventConversion)
NSAppleEventDescriptor(NSScriptConversion)
关于macos - cocoa 脚本: Use special string types like raw data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36385941/