2

在我的一个应用程序中,我document为标准 AppleScript 套件的类添加了一些新属性。其中一些属性具有类型text,另一些具有类型boolean。我编写了一个“sdef”文件并将 if 添加到我的应用程序的资源中。

但是当我启动应用程序时,控制台中有这样的消息:

.sdef 警告套件“标准套件”中类“窗口”的类型“文本”属性“标题”:AppleScript 名称引用可能不适用于此属性,因为它的类型不是 NSString 派生的。

而且,当我实际上尝试text从 AppleScript 中的 type 的此类新属性中获取值时,它将失败。我的应用程序中的正确方法被调用,它返回正确的值NSString,但 AppleScript 返回错误。控制台中再次出现一条消息:

返回脚本命令的结果时出错:结果对象...“请求的 NSString 值”...无法转换为“文本”类型的 Apple 事件描述符。发送 -objectSpecifier 时,类 '__NSCFString' 的这个实例返回 nil(它没有被覆盖吗?)并且没有为脚本类 'text' 声明强制类型。

这可能意味着无法将 CocoaNSString对象转换为 AppleScripttext对象。

当我尝试从一个新的布尔属性中获取值时,它工作得很好。

我究竟需要做什么才能将NSString对象转换为 AppleScripttext对象?

4

1 回答 1

0

I suspect you need to coerce the text parameter into a NSString.

I.e

Set sometextString to current application's NSString's stringwithTring:atext

Use it in your method

And to return it you do.

Return sometextString as text
于 2013-12-15T17:07:05.920 回答