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方法拼写相同,大小写相同(即所有小写)?还有,我的问题是,你如何知道它是第一个响应者,或者在它上面的响应者链中?