SupplementalTargetForAction:sender:不被调用

时间:2018-08-07 07:04:58

标签: macos nsviewcontroller nsresponder nssplitviewcontroller

我正在尝试将操作从菜单项发送到NSSplitViewController的子视图控制器。据我了解,我应该重写splitViewController上的supplementalTargetForAction:sender:,以将子视图控制器提供给响应者链(see this post)。

但是,supplementalTargetForAction:sender:从未被调用。

文档指出:

  

如果此NSResponder实例本身未响应responseToSelector :,则   

补充的TargetForAction:sender:。

在调试工作中,我仅使用普通的viewController创建了一个新的Xcode项目,重写了那里的方法以查看是否被调用-否。

这是我的代码:

@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

storyboard sccreenshot

我在做什么错了?

0 个答案:

没有答案