Работа с NSWindow и NSTextview представлением, используя ApplescriptObjc - PullRequest
0 голосов
/ 17 июня 2019

У меня есть некоторый код ApplescriptObjc, который я написал благодаря red_menance и CJK. Я внес некоторые изменения, превратив его в обработчик и выяснив, как изменить шрифты и размеры шрифтов в NStextview, но у меня возникли проблемы с изменением цвета шрифта и цвета фона с помощью переменных.

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

set theColor to "white"
set theBackgroundcolor to ""


        if theColor is "" then
            set its textColor to (current application's NSColor's whiteColor)
        else
            set theColor to (theColor & "Color") as string
            set its textColor to (current application's NSColor's theColor)
        end if
        if theBackgroundcolor is "" then
            set its backgroundColor to (current application's NSColor's grayColor)
        else
set theBackgroundcolor to (theBackgroundcolor & "Color") as string

set its backgroundColor to (current application's NSColor's theBackgroundcolor)

end if

Я получаю следующие ошибки: Невозможно установить backgroundColor для идентификатора «class ocid» id «data optr00000000E0F1320080600000» для базового цвета NSColor. а также Невозможно установить textColor для «class ocid» id «data optr00000000E029320080600000» в значение «Цвет NSColor».

1 Ответ

0 голосов
/ 17 июня 2019

Вы можете использовать код значения ключа для доступа к свойствам через строковые параметры, например:

set theColor to "red"
set theColor to (theColor & "Color")
set its textColor to (current application's NSColor's valueForKey:theColor)
...