Как я могу напечатать эту переменную на этикетке «MyLabel»
Где бы вы хотели печати переменной? Вы можете сделать AppleScript отобразить диалог:
set variable to 42
display dialog "The value of variable is " & variable
AppleScript не предназначен в качестве терминального языка, то для написания сценариев пользовательского интерфейса, так что это не так, как большинство языков сценариев, которые просто предлагают печать, как где бы увидеть напечатанный пользователь стоимость.
и сделать автоматическое обновление сценария при изменении данных?
Не совсем уверен, чего вы ожидаете отсюда. Что ваша система волшебным образом запускает ваш скрипт всякий раз, когда изменяется содержимое файла? Это не произойдет. Вы можете создать задание запуска и запустить программу для запуска этого файла, а затем выполнить скрипт при изменении файла; это описано здесь:
https://discussions.apple.com/message/13182902#13182902
Но какой-то процесс будет контролировать файл и, если ваш сценарий должен сделать это, он должен быть запущен все время, нон-стоп. Затем вы можете сделать некоторый код за один раз каждые X секунд, проверив дату последней модификации файла и всякий раз, когда это изменится, перечитайте plist. Этот опрос супер уродливый, но лучшее, что AS может сделать из коробки.
ИСТОЧНИК Где все остальное? Вы говорите
также, когда я нажимаю на текст (или другую кнопку), могу скопировать значение в буфер обмена.
Какой текст? Какая кнопка? Звучит так, будто у вас есть целое приложение, но все, что вы нам показали, - это 11 строк кода сценария. Вы даже не упоминали, что у вас есть приложение с пользовательским интерфейсом. Ваш вопрос начинается с «Вот мой сценарий», поэтому вы делаете так, как будто это 11 строк - все, что у вас есть.
(будет установить буфер обмена theMyDataFromPlist работать?)
Почему вы просто не попробовать?Вставка этой строки в ScriptEditor заняла бы столь же долгое, чем задание этого вопроса. Я просто попробовал, и получается, что вы можете устанавливать только строки.
Этот код не будет работать:
-- bad code
set variable to 42
set the clipboard to variable
Но этот код работы:
-- good code
set variable to 42
set the clipboard to "" & variable
Я также задаюсь вопросом, что можно сделать то же самое с Swift?
Лично я бы даже не подумал о написании приложения в AppleScript; Я бы предпочел прекратить писать код, прежде чем я это сделаю. Конечно, это можно сделать в Swift или в Obj-C. Все, что вы можете сделать в AS, можно сделать на этих двух других языках, и нет, наоборот, это не так.
Используя Obj-C или Swift, вы также можете использовать GCD и с GCD-контролем файл для внесения изменений легко. Просто увидеть
https://stackoverflow.com/a/11447826/15809
Благодарю за ответ, да, но я получаю данные с веб-страницы, (document.getElementsByClassName), который не может быть сделано быстрым или, по крайней мере, то, что мне сказали. также я до сих пор не могу установить свои данные в буфер обмена, возможно, из чего-то действительно глупого в моем коде –
@KevinCork Каждый C и Obj-C API также могут использоваться в Swift; на самом деле каждый API, вам нужно включить только заголовочные файлы в заголовок моста, чтобы компилятор Swift знал об этом API (фреймворки из Apple - это модули, они могут быть непосредственно «импортированы» в код Swift, например «import Dawin» для Например, все, что не является модулем, по-прежнему будет иметь заголовочный файл, и этот файл может быть включен в заголовок моста). Задайте новый вопрос, поместите там какой-то фактический код (не только 11 строк несвязанного AppleScript), и кто-то здесь покажет вам тот же код в Swift за считанные минуты. – Mecki
@KevinCork Что касается настройки буфера обмена, если вы не показываете мне свой код, то я не могу вам помочь, извините. И я до сих пор не знаю, что AppleScript код в вашем вопросе имеет отношение ко всему этому. Он не содержит 'document.getElementsByClassName', в буфер обмена также нет попытки записать. Если у вас разные вопросы, задавайте разные вопросы по SO; пожалуйста, не ставьте много не связанных вопросов в один вопрос. SO - пользователи пользователей, и только если вы задаете один вопрос одновременно, другие пользователи найдут ваш вопрос, если у них есть аналогичная проблема, и вы можете получить прибыль от ответа. – Mecki