为什么我不能将这两个字符串加在一起?

时间:2014-11-14 17:17:34

标签: applescript-objc

on oneButtonClicked_(sender)
    set faceNumber's setStringValue() to faceNumber's stringValue() & "1"
end oneButtonClicked_

我收到此错误:“无法将«class ocid»id«data optr000000000058B37BFF7F0000»转换为类型列表,记录或文本。(错误-1700)”

faceNumber是一个标签,当用户点击按钮时,我想为其添加“1”字符串。例如,如果用户单击按钮5次

1 个答案:

答案 0 :(得分:1)

stringValue返回 NSString (错误答案) CFString 。您必须制作一个真正的AppleScript字符串才能使用它。 BTW您的代码set faceNumber's setStringValue()不正确。原因是:

  1. Cocoa处理程序总是使用下划线。
  2. 如果您使用setter setStringValue(),则不需要使用set x to
  3. 如果您想使用setStringValue(),则必须在括号之间提供参数
  4. 现在把所有东西放在一起:

    on oneButtonClicked_(sender)
        faceNumber's setStringValue_((faceNumber's stringValue) as string & "1")
    end oneButtonClicked_
    

    或(更清楚):

    on oneButtonClicked_(sender)
        tell faceNumber
            set currentValue to (its stringValue) as string
            setStringValue_(currentValue & "1")
        end tell
    end oneButtonClicked_
    

    我希望你喜欢这个答案,按两次按钮后你会在标签的末尾有一个11。

    干杯,迈克尔/汉堡