Добавить свойство сценариев в приложение Какао, полученное из NSObject <NSApplicationDelegate>?

Может кто-нибудь указать мне на пример этой работы. Я просто хочу установить значение свойства через AppleScript. Я прошел все примеры сценариев, которые настроены по-разному.

<?xml version="1.0" encoding="UTF-8"?>
<dictionary title="">
<suite name="Circle View Scripting" code="bccS" description="Commands and classes for     Circle View Scripting">
    <class name="application" code="capp" description="" >
        <cocoa class="NSApplication"/>

        <property name="circletext" code="crtx" type="text" description="The text that gets spun into a circle">
            <cocoa key="circleText"/>
        </property>
        <property name="myint" code="crmy" type="integer" description="The text that gets spun into a circle">
            <cocoa key="myInt"/>
        </property>
    </class>
</suite>

заголовочный файл:

// header 
@interface MyDelegate : NSObject <NSApplicationDelegate> 
{
    WebScriptObject *scriptObject;
    WebView *webView;
    NSWindow *window;
    NSInteger myInt; 
}

// implementation
- (BOOL)application:(NSApplication*)sender delegateHandlesKey:(NSString*)key 
{ 
    return key isEqualToString:@"myInt"] || [key isEqualToString:@"circleText"];;
}

-(NSInteger)myInt
{
    NSInteger myInteger = 42;
    return myInteger;
}

-(void)setMyInt:(NSInteger*)newVal
{
    // do nothing right now
    NSLog(@"SETTER  CALLED");
}

// Попытка Applescript установить свойство "myInt"

tell application "BrowserConfigClient"  
set myint to 7
properties
end tell

В конечном счете, вызывается метод DelegateHandlesKey, я могу вернуть значение для свойства, но метод установки никогда не вызывается. Заранее спасибо...

1 ответ

Ваш оператор метода содержит ошибку...

-(void)setMyInt:(NSInteger*)newVal

Не должно быть "*", поскольку NSInteger не является переменной "указателя". В комментариях к вашему вопросу я вижу, что Кен Томасес уже сказал вам об этом, поэтому обязательно исправьте это.

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

</dictionary>

У меня также есть это как вторая строка в моих файлах sdef...

<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">
Другие вопросы по тегам