csk*_*wrd 1 xcode menu objective-c interface-builder
我正在尝试为我制作的简单十六进制编辑器制作GUI.但是我无法启用任何默认菜单项(即"打开...","保存"等).无论我做什么,它们总是变灰并且无法点击.
我试图将"Open ..."菜单项链接到First Responder Object的接收操作openDocument:,并创建一个FileMenuController.m只有一个方法的新类名,-(IBAction)openDocument:(id)sender; 我是Xcode,Interface Builder和Objective-C的新手,并且失去了如何进行.
注意:这不是基于文档的应用程序.
谢谢您的帮助!
你有正确的想法.启用菜单项有两种方法,如启用菜单项中所述.通过自动启用,系统将检查响应者链,查找为菜单中的每个项目实现操作的对象.如果它找到具有适当操作的响应者,则启用该菜单项.
因此,您已将菜单项连接到第一个响应者,并且您已在FileMenuController班级中实施了相同的操作.您需要做的其他事情是:
FileMenuController从NSResponder继承,以便它可以成为响应者链的一部分FileMenuController并确保它是响应者链的一部分.实际上,您可能不希望单独的对象只是为了管理"文件"菜单.取而代之的是,你通常把你的-openDocument:行动,你的应用程序委托,因为这总是响应链的一部分,因为打开一个文档是什么,即应用(而不是,比方说,一个窗口或视图).同一菜单中的其他命令(如"保存","另存为","关闭"和"打印")不是由应用程序委托实现,而是由文档,窗口控制器或管理文档/文件的任何对象实现.这样,Open命令几乎总是被启用(因为应用程序委托几乎总是在响应程序链中),但只有在有可用于处理这些命令的文档时才会启用"保存","关闭"和"打印".
为了完整起见,管理菜单项启用的另一种方法是手动方式,您可以在其中专门设置每个项目的启用/禁用状态.不过,我认为这不是你想要的任务.
| 归档时间: |
|
| 查看次数: |
4953 次 |
| 最近记录: |