簡體   English   中英

可可如何阻止停靠菜單上的“退出”菜單項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM