【问题标题】:AppScript issues with Cocoa NSString and AppleScript text types?Cocoa NSString 和 AppleScript 文本类型的 AppScript 问题?
【发布时间】:2011-12-08 16:03:18
【问题描述】:

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

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

.sdef 警告类型 'text' 属性 'title' 的类 'window' 中 套件“标准套件”:AppleScript 名称引用可能不适用于 这个属性,因为它的类型不是 NSString 派生的。

当我真正尝试从 AppleScript 中的 text 类型的新属性中获取值时,它将失败。我的应用程序中的正确方法被调用,它返回正确的值NSString,但 AppleScript 返回错误。控制台中又出现了一条消息:

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

这可能意味着无法将 Cocoa NSString 对象转换为 AppleScript text 对象。

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

NSString 对象转换为AppleScript text 对象需要做什么?

【问题讨论】:

  • 没有看到任何代码就很难诊断。我最初的问题是 1)内存是否被正确释放,2)你是否正确创建了 NSString?
  • 你能发一些代码吗?

标签: cocoa text nsstring applescript sdef


【解决方案1】:

我怀疑您需要将 text 参数强制转换为 NSString。

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

在你的方法中使用它

然后把它还给你。

Return sometextString as text

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 2010-12-12
    相关资源
    最近更新 更多