Создание элемента меню Отображение окна - PullRequest
1 голос
/ 13 июня 2009

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

[item setAction:(SEL)action {
        [window makeKeyAndOrderFront:NSApp];
    }

Ответы [ 2 ]

5 голосов
/ 13 июня 2009

Похоже, вы пытаетесь сделать анонимную функцию. AFAIK, Obj-C не поддерживает их. По сути, вы хотите, чтобы вы определяли action как правильный метод:

[item setAction:@selector(action:)];

...

-(void)action:(id)sender{  
    [window makeKeyAndOrderFront:self];  
}

Кроме того, я не уверен, почему вы передаете NSApp на makeKeyAndOrderFront:. Полная подпись - - (void)makeKeyAndOrderFront:(id)sender, поэтому передача self обычно является наиболее подходящей (хотя я даже не уверен, что делает этот ввод!)

Я предлагаю вам пройти несколько обучающих программ , чтобы ознакомиться с Obj-C и Cocoa.

3 голосов
/ 13 июня 2009

Тип данных SEL ссылается на селектор , который является способом ссылки на метод в классе. Что вам нужно сделать, это определить метод в классе целевого объекта:

- (void)doSomething:(id)sender {
    [window makeKeyAndOrderFront:sender];
}

и вызовите setAction: метод вашего элемента управления следующим образом:

[item setAction:@selector(doSomething:)];

Похоже, однако, что вам нужно собраться с основами какао. Могу ли я предложить Руководство по началу работы Apple

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...