[英]cocoa how to block the “Quit” menu item on dock menu
我的停靠菜單始終會自動添加“退出”和其他2個菜單項,如何阻止/修改它們?
更新:
確實沒有辦法刪除/阻止/重定向“退出”菜單項。 最后使用了彼得的推薦,如吹牛希望對他人有幫助
-(NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
{
if (needPassword)
{
[self checkPassword:self];
return NSTerminateCancel;
}
else
{
return NSTerminateNow;
}
}
-(void)checkPassword:(id)sender
{
if(passwordCorrect)
{
!needPassword;
[[NSApplication sharedApplication] terminate:self];
}
}
試圖攔截用戶可能會告訴您的應用程序退出的所有可能方式,注定會失敗。 (您還記得退出蘋果活動嗎?)
僅在applicationShouldTerminate:
程序的委托中實現applicationShouldTerminate:
方法既容易又有效。 放置密碼面板並返回NSTerminateLater
。 然后,當用戶輸入正確的密碼或取消密碼時,向應用程序發送replyToApplicationShouldTerminate:
message 。
無論您已經抓出了哪一個退出命令(菜單項等),都將它們放回去。 讓用戶以常規方式調用常規的Quit命令; 這將觸發上述應終止程序來確定退出是否會真正發生。
1)打開MainMenu.xib 2)創建自己的停靠菜單3)右鍵單擊文件的所有者(NSApplication實例)4)將屬性“ dockMenu”與自定義菜單連接
如果您出於學習目的而想要這樣做,那很好。 但是,當您要出售此應用程序時,應重新考慮。 用戶希望您的應用在停靠菜單中具有退出按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.