setStringValue со списком AppleScript

Я использую этот код для добавления каждой выбранной дорожки в 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

У меня есть эта строка, чтобы показать вывод в текстовом поле в графическом интерфейсе:

    trackTable's setStringValue_(these_titles)

Но получается так:

Вывод setStringValue

Можно ли как-нибудь получить каждый элемент списка в одной строке, без кавычек и скобок?

2 ответа

Решение

Это правильный вывод для списка. Если вы хотите, чтобы он был приведен к строке в определенном формате, вы должны сделать это явно. Просто измените разделитель, используемый для списков, а затем приведите переменную в строку, которая поместит этот разделитель в виде текста между каждым элементом списка. Итак, добавьте этот код в конец вашего кода:

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

Измените разделитель на то, что вы хотите, вместо запятой и пробела.

Поскольку эта тема связана с AppleScriptObjC, я хочу показать это также.

set these_titles to these_titles's componentsJoinedByString:", "
Другие вопросы по тегам