addmentalTargetForAction:sender: не вызывается

Я пытаюсь отправить действие из пункта меню в дочерний контроллер представления NSSplitViewController. Как я понимаю, я должен переопределить supplementalTargetForAction:sender: на splitViewController для предоставления дочернего контроллера представления цепочке респондента ( см. этот пост).

Тем не мение, supplementalTargetForAction:sender:никогда не звонят.

В документации говорится:

Если этот экземпляр NSResponder сам по себе не отвечает RespondsToSelector:, тогда вызывается AdditionalTargetForAction:sender:.

В процессе отладки я создал новый проект XCode с обычным viewController, переопределив там метод, чтобы увидеть, вызывается ли он - нет.

Вот мой код:

@implementation ViewController

- (BOOL)respondsToSelector:(SEL)aSelector {
    NSString *s  = NSStringFromSelector(aSelector);
    if ([s hasPrefix:@"foo"]) {
        // let's pretend we do not respond here.
        // I expect `supplementalTargetForAction:sender:` to get called.
        return NO;
    }
    return [super respondsToSelector:aSelector];
}

- (id)supplementalTargetForAction:(SEL)action sender:(id)sender {
    // nobody calls me ever :(
    return [super supplementalTargetForAction:action sender:sender];
}

- (IBAction)foo:(id)sender {
    NSLog(@"Foo");
}

@end

скриншот

Что я делаю неправильно?

0 ответов

Другие вопросы по тегам