带有AppleScript List的setStringValue

时间:2014-08-27 22:09:22

标签: xcode applescript applescript-objc

我正在使用此代码将iTunes中的每个选定曲目添加到AppleScript Obj-C中的列表中:

    tell application "iTunes"
        set these_titles to {}
        if selection is not {} then
            set mySelection to selection
            repeat with aTrack in mySelection
                if class of aTrack is file track then
                    set end of these_titles to ((name of aTrack) as string)
                end if
            end repeat
        end if
    end tell

我有这一行在GUI的文本框中显示输出:

    trackTable's setStringValue_(these_titles)

但它是这样的:

Output of setStringValue

有什么方法可以让每一个列表项在一行上,没有引号和括号吗?

2 个答案:

答案 0 :(得分:1)

这是列表的正确输出。如果您希望它以特定格式强制转换为字符串,则需要明确地执行此操作。只需更改用于列表的分隔符,然后将变量强制转换为字符串,该字符串将该分隔符作为文本放在每个列表项之间。 因此,请将此代码添加到代码的末尾:

set oldTID to AppleScript's text item delimiters
set AppleScript's text item delimiters to ", "
set these_titles to these_titles as string
set AppleScript's text item delimiters to oldTID

将分隔符更改为您想要的任何内容,而不是逗号和空格。

答案 1 :(得分:1)

因为这个主题与AppleScriptObjC有关,所以我也想展示它。

set these_titles to these_titles's componentsJoinedByString:", "