Я новичок в сценарии Apple, но имею многолетний опыт работы в Objective-C для iOS. Мне нравится использовать классы Cocoa в пакете AppleScript. Но я не понимаю, как я могу подклассифицировать класс Cocoa. Например, я пишу в своем AppleScript расслоении «testLib»:Как наследовать класс Cocoa в скрипте
script Car
property parent : class "NSObject"
on workWithCar()
log me's retainCount() as integer
end workWithCar
end script
Но когда я пытаюсь использовать его в AppleScript я получаю сообщение об ошибке:
set carObj to Car of script "testLib"
carObj's workWithCar() -- script Car doesn't understand retainCount message (sorry I have localized text and I don't understand how it looks like in English)
Это означает, что мой автомобиль не является реальным Подкласс NSObject. Но если я создаю какао приложение Apple Script в Xcode
script AppDelegate
property parent : class "NSObject"
on applicationWillFinishLaunching_(aNotification)
log me's retainCount() as integer -- returns 1
end applicationWillFinishLaunching_
end AppDelegate
Я позабочусь 1. Там я могу получить доступ к методам всех NSObject, я думаю, что Apple, делает некоторые магические трансформации, когда он unarchives объектов из XIb. Могу ли я получить такой же эффект в коде в своем наборе AppleScript?
Да, я хочу создать библиотеку скриптов. Ваш ответ показал мне, что библиотека скриптов представлена как подкласс NSObject. Я не знал этого раньше, спасибо. Но как насчет других классов?Могу ли я подклассифицировать NSWindowController или любые другие классы Cocoa и переопределить его методы, например? – Alexey
Если честно. Я не уверен. С какой целью вы хотели бы это сделать? – markhunte
Я просто хочу работать с пользовательским интерфейсом в своей библиотеке скриптов. Я хочу создать окно и поместить в него webView, но webview можно создать только в основном потоке. И я решил, что могу это сделать в windowDidLoad NSWindowController. Я могу создать NSWindow и показать его, но без подкласса NSWindowController Я не могу получить полный контроль над окном. – Alexey