问题标签 [nsmenu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1866 浏览

cocoa - Cocoa 中是否有用于 Windows 中同步 TrackPopupMenu 的等效技术?

为了响应 rightMouse 事件,我想调用一个显示上下文菜单、运行它并响应所选菜单项的函数。在 Windows 中,我可以使用带有 TPM_RETURNCMD 标志的 TrackPopupMenu。

在 Cocoa 中实现这一点的最简单方法是什么?似乎 NSMenu:popUpContextMenu 想要将事件发布到指定的 NSView。我必须创建一个虚拟视图并在返回之前等待事件吗?如果是这样,鉴于我没有返回我的 main ,我该如何“等待”或刷新事件?

0 投票
2 回答
5032 浏览

objective-c - 如何更改 Cocoa 中的主菜单?

我有一个具有两种类型窗口的可可应用程序,每种类型的窗口都需要显示不同的主菜单。

在我的 MainMenu.xib 中,我有默认的 MainMenu。在 Window1.xib 中有 Window1,在 Window2.xib 中有 Window2,它是 MainMenu。

当我打开第一个窗口时,我有默认菜单,当我打开 Window2 时,我得到它的菜单。

但是,当我切换回 Window1 时,我仍然看到 Window2 的菜单。如何使显示的菜单跟随关键窗口?

0 投票
2 回答
1122 浏览

objective-c - 用户选择菜单项后,如何保持 NSPopUpButton 打开?

我有一个 NSPopUpButton 为具有自定义视图的状态项提供 NSMenu。弹出按钮显示链接列表。当用户从列表中选择一个链接时,该链接将显示在用户的浏览器中(在后台)。

自然,每次用户选择链接时菜单都会关闭。

我想改变这一点:我希望菜单在用户点击各种链接时保持打开状态,所有这些都可以在后台打开。当用户点击其他地方时,菜单就会消失。

如何实现?我应该继承 NSMenuItem 并以某种方式拦截鼠标点击吗?在弹出的菜单上覆盖一个透明的 NSView 并再次以某种方式拦截点击?我愉快地提出了这些建议,但我将无法实现其中任何一个......将不胜感激指向正确的覆盖方法的指针。

0 投票
1 回答
162 浏览

cocoa - 更新突出显示的 NSMenuItem 时应用程序崩溃

嘿嘿!
我有一个小应用程序LSUIElementNSStatusItem.
有时弹出菜单的菜单项由代码更新。但是当更新的NSMenuItem(或其超级菜单)被“突出显示”时,应用程序崩溃而没有记录任何内容。

你有什么主意吗?非常感谢您的回答。

0 投票
2 回答
1001 浏览

cocoa - 上下文菜单项未激活

我有问题。我的上下文菜单正在显示,但菜单项未激活。所以我显示菜单的新代码如下:

deleteFile和openFile的函数声明如下:

我正在调用我的上下文菜单,如下所示:

我的上下文菜单项都带有阴影,无法单击。请你能告诉我哪里出错了。

谢谢

0 投票
2 回答
1614 浏览

cocoa - 如何拥有具有动态操作的 NSMenu

我想创建一个 NSMenu,其选项类似于您在 Windows 资源管理器中找到的“发送到”选项,其中将列出您可以将文件发送到的附加设备。

从我的研究来看,似乎不可能定义一个将参数发送给函数的选择器,所以这不是拥有@selector(@"sendToVolume:1"). 那么,当项目数量未知时,我还能如何让菜单根据单击的项目执行不同的任务呢?

0 投票
5 回答
4589 浏览

objective-c - 如何向 NSToolbarItem 添加弹出菜单?

我正在尝试从 NSToolbarItem 打开一个弹出菜单。我尝试按照这个示例进行操作,但我不能使用该类方法,因为 NSToolbar 和 NSToolbarItem 继承自 NSObject 而不是 NSView。

除了创建自定义视图之外,从 NSToolbarItem 打开弹出菜单的最佳方法是什么?

0 投票
1 回答
339 浏览

cocoa - 绑定枚举属性的最简洁方法是什么?

我有一个菜单,其中包含枚举中每个值的项目。

菜单:

枚举:

物业:

连接这个最干净的方法是什么?我有两个想法,但都让我觉得不满意。

第一个想法:为每个值(等)创建属性sortMethodIsDueDate这些setSortMethodIsDueDate:属性将调用setTaskSortMethod:和调用valueDidChange:@"sortMethodIsDueDate"等。然后菜单项将绑定到这些属性。这似乎需要做很多工作。

第二个想法:连接每个菜单项,-(IBAction)updateSortMethod:(id)sender然后可以迭代菜单项并根据sender. 这种方法很好,直到taskSortMethod被不同的代码部分更改,此时需要添加代码以保持菜单与taskSortMethod.

我倾向于第一种方法,因为它在 V 和 C 之间有更好的分离。

有更好的想法吗?

0 投票
1 回答
455 浏览

objective-c - 如何将操作与键盘快捷键相关联?

我有一个调用面板的 IBAction。我想使用键盘快捷键调用该操作,但我不知道该怎么做。

我想这样做的一种方法是创建一个菜单项,将操作与该项目相关联,然后将快捷方式分配给该项目,但我还没有完成我的菜单。

有什么想法或建议吗?

0 投票
1 回答
2648 浏览

nsview - 具有自定义视图的自定义 NSStatusItem - 使用 NSWindow、NSView、自定义 NSMenuItem?

我正在尝试创建一个 LSUIElement 应用程序,其行为类似于 Spotlight、CoverSutra 和该类型的其他应用程序。我设法创建了一个自定义 NSStatusItem,它会弹出一个 NSWindow,但问题是当前具有焦点的应用程序将焦点放在我的自定义 NSWindow 上。

我以 Matt Gemmell 的示例为基础(http://mattgemmell.com/2008/03/04/using-maattachedwindow-with-an-nsstatusitem

例如,如果您在 Safari 中并单击 Spotlight 图标,则当前 Safari 窗口不会灰显并保持焦点。当您在 Spotlight 中按 ESC 时,焦点将返回到 Safari 窗口。

我没有设法用我的自定义 NSWindow 做到这一点。我必须单击一个窗口才能将焦点重新设置回它。

所以我想知道要实现这一目标的路线。解决方案是带有自定义 NSMenuItem 的 NSWindow、NSPanel、NSMenu 吗?