cocoa如何阻止停靠菜单上的“退出”菜单项

时间:2011-12-07 23:48:38

标签: cocoa menu menuitem quit

我的停靠菜单总是自动添加“退出”和其他2个菜单项,我该如何阻止/修改它们?

更新

真的没办法删除/阻止/重定向“退出”菜单项。 彼得的推荐最后像打击一样 希望对他人有所帮助

- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender {     if(needPassword)     {         [self checkPassword:self];         返回NSTerminateCancel;     }     其他     {         返回NSTerminateNow;     } }

- (无效)checkPassword:(ID)发送方 {     如果(passwordCorrect)     {
        !needPassword;             [[NSApplication sharedApplication] terminate:self];     } }

2 个答案:

答案 0 :(得分:6)

试图拦截用户可能告诉您的应用程序退出的所有可能方式肯定会失败。 (你还记得退出苹果活动吗?)

在应用程序的委托中实现the applicationShouldTerminate: method会更容易,也更有效。放上密码面板并返回NSTerminateLater。然后,当用户输入正确的密码或取消时,发送应用程序a replyToApplicationShouldTerminate: message

无论你退出哪个Quit命令(菜单项等),都要把它们放回去。让用户以正常方式调用正常的Quit命令;这将触发上述应该终止的程序,以确定退出是否真的会发生。

答案 1 :(得分:1)

1)打开MainMenu.xib 2)创建自己的停靠菜单 3)右键单击文件所有者(NSApplication实例) 4)将属性“dockMenu”与自定义菜单

连接

如果您因为学习目的而想这样做,那就没关系。但是,当您想要销售此应用程序时,您应该重新考虑这一点。用户希望您的应用在停靠菜单中有一个退出按钮。