gpt4 book ai didi

cocoa - 禁用/启用应用程序菜单项

转载 作者:行者123 更新时间:2023-12-03 16:06:32 29 4
gpt4 key购买 nike

尝试学习菜单处理的基础知识。我的测试应用程序的菜单栏有 3 个菜单——即“TestApp”、“File”和“Help”。我发现我可以完全删除这些菜单,只需调用 say:

NSMenu* rootMenu = [NSApp mainMenu];
[rootMenu removeItemAtIndex:2];

但是,我只想暂时禁用它们(将它们灰显)。请问有同样简单的方法吗?

最佳答案

我可能误解了你的问题,但你似乎希望能够使系统菜单栏上出现的菜单的实际标题变灰(例如使"file"菜单变灰)。我不确定这是否可能,但这肯定违背了 Apple Human Interface Guidelines :

A menu’s title is displayed undimmed even if all of the menu’s commands are unavailable (dimmed) at the same time. Users should always be able to view a menu’s contents, whether or not they are currently available.

因此,问题的真正解决方案是当您的应用程序处于某种状态时,能够使某个菜单中的所有菜单项变灰。为此,implement the NSUserInterfaceValidations protocol 。它只需要实现 - (BOOL)validateUserInterfaceItem: 方法。通常,在实现此方法时,您只需检查正在验证的用户界面项的选择器,如果应该启用则返回 YES,如果不应该则返回 NO(这将使菜单项变灰)。

关于cocoa - 禁用/启用应用程序菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2084188/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com