Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 即使第一响应者响应相应的选择器,Mac菜单项也会变灰_Macos_Cocoa_Osx Yosemite_First Responder_Nsviewcontroller - Fatal编程技术网

Macos 即使第一响应者响应相应的选择器,Mac菜单项也会变灰

Macos 即使第一响应者响应相应的选择器,Mac菜单项也会变灰,macos,cocoa,osx-yosemite,first-responder,nsviewcontroller,Macos,Cocoa,Osx Yosemite,First Responder,Nsviewcontroller,我的菜单中有一个刷新项,绑定到第一响应者的reload:方法。我有两个视图控制器。两者都使用相同的签名实现完全相同的方法: -(void)reload:(id)sth{ ... } 菜单项按以下方式绑定: 在一个视图控制器中,它可以完美地工作。另一个是灰色的。其他菜单项,自定义或默认,工作正常。这只是一个视图控制器中的一种方法: 为什么它可以灰显?您如何确定视图是第一响应者还是在第一响应者之上的响应者链中?如果它确实在响应程序链中,则可能是a)它实现了-validateNuItem

我的菜单中有一个刷新项,绑定到第一响应者的
reload:
方法。我有两个视图控制器。两者都使用相同的签名实现完全相同的方法:

-(void)reload:(id)sth{
    ...
}
菜单项按以下方式绑定:

在一个视图控制器中,它可以完美地工作。另一个是灰色的。其他菜单项,自定义或默认,工作正常。这只是一个视图控制器中的一种方法:


为什么它可以灰显?

您如何确定视图是第一响应者还是在第一响应者之上的响应者链中?如果它确实在响应程序链中,则可能是a)它实现了
-validateNuItem:
以返回该项的false,或者b)靠近第一响应者的其他对象也实现了该操作方法,并且已经实现了
-validateNuItem:
以返回false。还要查找
validateUserInterfaceItem:
@kenthomase我还没有实现该方法。但是在这之后,我尝试了,但没有调用它。您是否绝对肯定两个视图控制器中的action方法拼写相同,大小写相同(即所有小写)?还有,我的问题是,你如何知道它是第一个响应者,或者在它上面的响应者链中?