我正在尝试将操作从菜单项发送到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
我在做什么错了?