代码之家  ›  专栏  ›  技术社区  ›  de.

supplementalTargetForAction:发件人:未被调用

  •  0
  • de.  · 技术社区  · 7 年前

    我正试图从菜单项向NSSplitViewController的子视图控制器发送操作。据我所知,我应该超越 supplementalTargetForAction:sender: 在splitViewController上为响应程序链提供子视图控制器( see this post ).

    附加目标操作:发件人: 从来没人打过电话。

    文件规定:

    调用了subjectAltargetForAction: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
    

    storyboard sccreenshot

    0 回复  |  直到 7 年前