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)
Но получается так:
Можно ли как-нибудь получить каждый элемент списка в одной строке, без кавычек и скобок?
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:", "