Nik*_*bak 13 macos cocoa objective-c interface-builder nsmenuitem
我有一个菜单,在界面构建器中创建了几个项目.它在那里看起来很好,并且检查了"启用".
但是当我运行应用程序时,所有菜单项都显示为灰色.
我已经检查过isEnabled,它返回true.
此外,以编程方式创建的菜单项(使用initWithTitle和不使用界面构建器)工作正常.
我在这里错过了什么吗?我对OSX开发真的很陌生(事实上,这是我的第一天).
谢谢
pka*_*amb 21
记得设置菜单项的目标:
menuItem.target = self;
Run Code Online (Sandbox Code Playgroud)
如果设置了菜单项的目标,则NSMenu首先检查该对象是否实现了该项的操作方法.如果没有,则禁用该项目.如果目标确实实现了项的操作方法,NSMenu首先检查该对象是否实现了validateMenuItem:或validateUserInterfaceItem:方法.如果没有,则启用菜单项.如果是,则菜单项的启用状态由方法的返回值确定.
如果未设置菜单项的目标且NSMenu对象不是上下文菜单,则NSMenu使用响应程序链来确定目标.如果响应者链中没有实现项目操作的对象,则禁用该项目.
如果某人可能会谷歌这个并且受益,那么'Action'方法被声明没有:(id)sender参数:
-(IBAction) quit;
Run Code Online (Sandbox Code Playgroud)
奇怪的是,setAction方法NSMenuItem吃了它并没有抱怨.那好吧.
| 归档时间: |
|
| 查看次数: |
6046 次 |
| 最近记录: |