问题标签 [nsmenuitem]

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 投票
1 回答
147 浏览

cocoa - 界面生成器错误?

我有一个我在 10.6 系统上编写的可可程序,但目标是 10.5。

在 10.6 系统上,它工作正常。但是,当我在 10.5 机器上运行它时,我得到:

菜单项操作的发送者现在是 NSMenuItem,而不是 NSMatrix。菜单项操作方法似乎正在尝试将 NSMatrix 方法“accessibilityIsIgnored”发送给它的发送者。这不再有效。请更改代码。

我在网上查了一下,发现有一个地方暗示我在我的代码中调用了“accessibilityIsIgnored”,但我没有,或者系统上有多个 InterfaceBuilder 库的副本,但没有。

有其他人看过这个吗?

0 投票
2 回答
10154 浏览

cocoa - 在 NSMenuItem 中添加 NSSubmenu 项

我想在 NSMenu 项的其中一个条目中添加一个下拉菜单。(例如,如果您单击 Finder 栏上的电池指示器,它有一个显示->图标、时间、百分比选项)。现在我使用以下代码添加一个 MenuItem:

如何使用此下拉列表添加子菜单项?谢谢。

0 投票
1 回答
573 浏览

cocoa - 如何将焦点放在 NSMenu 上(使其获取关键事件)?

我有一个带有 NSSearchField 和菜单项的状态菜单。当搜索字段处于活动状态并且用户按下向上和向下箭头时,我想开始菜单跟踪,即用户将能够在菜单项之间使用箭头键移动。我可以捕捉 moveUp 和 moveDown 选择器。如何使菜单成为关键响应者?

谢谢,

纳瓦

0 投票
1 回答
228 浏览

objective-c - 两个 NSMenuItem 的同步状态

我有两个NSMenus相同的NSMenuItems。应该只选择NSMenuItem其中一个。NSMenu(有点像NSMatrix)。因此,我将每个操作连接NSMenuItem到相同的操作,并为项目的索引添加了一个 iVar,带有NSOnState. 在方法中,我将旧索引项的状态设置为,新索引项设置NSOffStateNSOnState,然后将旧索引设置为新索引。这适用于两者之一NSMenus。但我想同步它们。我可以为每个 NSMenu 添加 IBOutlets,然后在方法中设置状态,因为我可以访问两者NSMenus。但这感觉有点多余。注意:我还计划将索引保存在用户默认值中,所以也许可以通过NSUserDefaultsController?

0 投票
1 回答
493 浏览

cocoa - 在 NSMenu 中显示自定义/任意控件

如何在 NSMenu 中显示 NSTextField 或 NSProgressIndicator?我正在寻找类似于 Spotlight 图标菜单或大多数应用程序的帮助菜单的功能。

0 投票
1 回答
2987 浏览

cocoa - 从 XIB 加载 NSView 子类

我需要在 NSMenuItem 中使用自定义视图。我创建了一个新视图 XIB 并在其中自定义了视图。如何使用 setView: 方法加载该视图并在 NSMenuItem 中设置它?

更新:我找到了一个解决方案,但现在带有自定义视图的菜单项在鼠标悬停时不会突出显示。我能解决这个问题吗?

0 投票
1 回答
353 浏览

cocoa - 如何知道哪个 NSTableView 打开了上下文菜单?

我有 5 个具有相同上下文菜单的 NSTableView 实例。当我收到菜单已被单击的消息时,我需要知道哪个表发送了它。我已经检查了 NSMenu 文档,但我似乎没有找到一种方法来检查哪些表打开了菜单..

我正在考虑继承 NSTableView 并在 menuForEvent 上向代表发送消息,这是最好的方法吗?

更新:

感谢 Joshua,我正在使用 5 个表格来显示每周 5 天的任务计划。每个表代表一个工作日,我添加了用于添加和删除任务的上下文菜单。因此,当用户在工作日单击“添加任务”时,我需要知道是哪一个。我通过子类化 tableview 并在打开菜单时向委托发送消息来使其工作。通过这种方式,我的控制器知道哪个表是最后调用菜单的。但在我看来,这似乎不是最好的实现,也许就像你说的问题出在 UI 上,你怎么看?何塞。

0 投票
2 回答
1869 浏览

cocoa - 对状态栏项的 NSMenu 进行逆向工程

我想为状态栏项目创建一个菜单,就像在 Tapbot 的 PastebotSync 应用程序中看到的那样:

有谁知道如何在菜单顶部实现与顶部齐平的自定义区域?

我已经尝试/想到了一些潜在的方法:

  • 带有视图的标准 NSMenuItem - 不与菜单顶部齐平
  • 一些 hack-ish 代码将 NSWindow 放置在菜单顶部的区域上 - 不是很好,因为它不会在菜单关闭时很好地淡出
  • 完全放弃 NSMenu 并改用 NSView - 还没有尝试过,但我真的不想制作一些假按钮或充当 NSMenuItems 的东西

有人有更好的想法或建议吗?

谢谢!

0 投票
2 回答
828 浏览

objective-c - NSMenuItem 随时间变化的标题。

我想实现一个标题随时间变化的 NSStatusItem。我的最终目标是在我设置的图像旁边的菜单栏中显示倒数计时器。也许我正在以错误的方式解决这个问题。但是我已经有一串字符随着时间的推移不断变化,代表计时器。我试图弄清楚如何将该字符串放在为我创建的菜单设置的图像旁边。

我尝试了多次调用 setTitle 方法,但它们似乎不起作用。只有 setTitle 的初始调用在对象初始化之前起作用。之后什么也没有发生。我想我可以释放 NSStatusItem 对象并在每次我想要更改计时器时重新创建它,但这似乎非常低效。我什至不确定它是否会起作用。

我还考虑使用 setToolTip 方法来显示计时器倒计时。但这似乎与 setTitle 方法相同。一旦设置好,在释放 NSStatusItem 对象并创建一个新对象之前,您无法更改它。

任何建议,将不胜感激。

谢谢

戴夫

0 投票
2 回答
2068 浏览

cocoa - NSMenuItem 中的动画进度条

NSMenuItem我想在自定义视图中放置一个动画进度条。这在 Apple 的MenuItemView示例中得到了演示,但它没有动画(至少在 10.5 中没有,并且示例显然来自 10.4)。

我尝试设置一个调用 的计时器,按文档所说的那样setNeedsDisplay:YES安排。NSEventTrackingRunLoopMode这有效,但仅适用于确定的进度条,如果我更改值,并且仅在第一次打开菜单时。第二次和连续两次,条形图重绘两次,然后保持冻结状态。对于不确定的进度条,理发杆条纹从不动画。


编辑:代码片段。我刚刚添加了itemChanged调用,似乎没有任何效果。更新纯文本项目工作正常。