gpt4 book ai didi

objective-c - 如何暂时隐藏主菜单(NSMenu)?

转载 作者:行者123 更新时间:2023-12-03 17:40:43 26 4
gpt4 key购买 nike

我正在尝试实现一项功能来密码保护我的 cocoa 应用程序。因此,在我的 AppDelegate 中,如果在窗口上正确输入密码,我将通过调用 NSApp runModelforWindow 方法调出主应用程序窗口。

它工作正常,除了在首选项中我允许用户更改密码。因此,这意味着为了防止用户黑客攻击,我必须隐藏主菜单,直到正确输入密码。

我不想使用removeItemAtIndex删除某些菜单项或以编程方式设置目标操作来调用方法来调出首选项窗口。相反,我想暂时隐藏 [NSApp mainMenu]。我搜索了它,似乎找不到任何方法,例如 setHidden:YES 来隐藏它。

我已经尝试过 [[NSApp mainMenu] cancelTracking] 但它不起作用

有什么简单的方法可以做到这一点吗?

最佳答案

您可以使用-setPresentationOptions: NSApp 上的方法来隐藏和显示标准操作系统 UI 的许多部分,包括菜单栏和 Dock。请注意,您必须将菜单栏和 Dock 一起隐藏:

/* Hide */
[NSApp setPresentationOptions:[NSApp presentationOptions] |
NSApplicationPresentationHideMenuBar |
NSApplicationPresentationHideDock];

/* Show */
[NSApp setPresentationOptions:[NSApp presentationOptions] ^
NSApplicationPresentationHideMenuBar ^
NSApplicationPresentationHideDock];

不过,这是一种相当破坏性的 UI 体验。考虑在屏幕上显示密码对话框时禁用您不希望用户访问的任何菜单项或 UI 元素。

关于objective-c - 如何暂时隐藏主菜单(NSMenu)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16113041/

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