macos - 将静态项目添加到 Cocoa 应用程序中的 "Windows"菜单

标签 macos cocoa nswindow nsmenuitem nsmenu

我有一个有 2 个窗口的应用程序(类似于 Twitter 时间线和提及)。现在,我在"file"菜单中使用了“时间轴 ⌘1”和“提及 ⌘2”菜单,但这有点错误。因此,我只需通过拖放即可将它们移动到“Windows”菜单。

当我打开应用程序时,一切都很好,我可以在“Windows”菜单下看到两个菜单项。但是,当我关闭“提及”窗口时,菜单项“提及 ⌘2”消失,我无法再打开此窗口。

我看过其他应用程序,其中大多数都有菜单项来在“Windows”菜单中显示窗口,并且在关闭窗口后它们也不会消失。我知道 Cocoa 使用“窗口”菜单项做了 soma 魔法,这样做是完全可以的(因为我打开了一些其他需要从那里出现和消失的窗口),但是我怎样才能使这两个窗口项目有点静态,所以它们不会消失?

最佳答案

我终于找到了答案,为了让它们不被你需要调用的Windows菜单处理

[timelineViewWindow setExcludedFromWindowsMenu:YES];
[mentionsViewWindow setExcludedFromWindowsMenu:YES];

然后将菜单项添加到 Windows 菜单中,它们将不再消失。

关于macos - 将静态项目添加到 Cocoa 应用程序中的 "Windows"菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13318496/

相关文章:

c++ - 如何在旧 OS X 上运行使用新 C++ 标准库编译的软件

swift - NSSegmentedControl 不会使模板图像变暗

objective-c - Cocoa 中的辅助函数

objective-c - OpenGL GL_POINTS 大小

objective-c - 从 Storyboard 手动打开 NSWindow

java - 从Java执行killall命令

macos - 没有应用程序包的 QT 命令行可执行二进制文件有 Macdeployqt 吗?

Cocoa:我已经收到了用户的输入 - 现在怎么办?

swift - 将图像发送到 API - Swift 4

macos - 当仅激活一个应用程序的窗口时,如何将所有应用程序的窗口置于前面?