问题标签 [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 投票
1 回答
770 浏览

cocoa - 将 NSMenuItem 的标题椭圆化为菜单的宽度

我想以编程方式更改 NSMenuItem 的标题,但将其省略,以便此修改不会导致菜单宽度增加。我怎样才能做到这一点?

0 投票
1 回答
314 浏览

cocoa - NSMenuItem 编号冒泡?

我见过这样的事情:

四舍五入的数字字段

在菜单项右侧的 Menulet 中,我不知道该怎么做。

谁能详细说明?谢谢!

0 投票
2 回答
1019 浏览

cocoa - 选择 popUpContextMenu 中的第一项

我在一个非常键盘密集型的应用程序上工作。双手放在键盘上。没有手放在鼠标上。

用户可以通过键盘弹出上下文菜单,选择一个项目,最后按 Enter。

[NSMenu popUpContextMenu]显示菜单而不突出显示任何项目。用户必须按一次 arrow_down 才能突出显示第一项。

我的一位朋友观察到每次使用此菜单时都必须按 arrow_down,并建议我删除此步骤,以便在弹出菜单时始终突出显示第一项。

我怀疑它需要碳破解?

如何以编程方式突出显示第一项?


我使用此代码弹出一个菜单。


更新:我尝试在 popUpContextMenu 之后立即向我的应用发送一个 arrow_down 事件,但是当菜单可见时该事件不会执行。(该事件在菜单消失后执行)。

0 投票
1 回答
355 浏览

cocoa - 弹出菜单要求在每次按键时更新所有菜单

我正在以编程方式创建一个弹出菜单并使用委托方法 menuNeedsUpdate:(NSMenu *) 菜单对其进行更新,然后使用 popUpMenuPositioningItem:nil atLocation:mouseLoc inView:nil 方法显示它。

就鼠标控制而言,它工作正常。但是,当使用键盘(字母或箭头键)时,我注意到它调用 menuNeedsUpdate: 来处理所有内容,包括根菜单和子菜单。这是非常低效的,并且使通过键盘使用菜单变得迟缓。

为什么会这样?有什么办法可以规避或阻止它?

0 投票
2 回答
1153 浏览

cocoa - 如何强制 NSMenuItem 重绘?

我正在实现一个自定义状态栏菜单,它有一个带有 NSSearchField 的自定义视图。我正在根据搜索结果更新菜单项的数量。菜单项的数量随着用户在 NSSearchField 中的类型而改变。我注意到,如果结果数量保持不变,则项目标题不会更新(重绘)。我如何强制他们重绘?

在重建菜单的函数中,我首先删除所有项目,然后根据搜索结果创建新项目。

谢谢,

纳瓦

0 投票
1 回答
1969 浏览

cocoa - 如何使用延迟的 NSMenu 创建 NSButton?

在 Cocoa 中,我想创建一个带有延迟菜单的 nsbutton。即,当点击它应该调用动作方法并且当它保持在按下状态2秒时它应该显示一个nsmenu。

它类似于 Xcode 工具栏中的“构建活动目标”按钮。

问候,

达纳拉杰。

0 投票
4 回答
14398 浏览

cocoa - 我如何在 Cocoa 中获取应用程序菜单

如何获取应用程序菜单的 NSMenu 或 NSMenuItem(在苹果菜单旁边的菜单栏中)。它似乎是自动创建的,并且独立于我通过 NSApplication setMainMenu 设置的 NSMenu。

顺便说一句:我正在构建没有 Xcode 的完整应用程序,所以请不要使用 InterfaceBuilder 提示。

PS:MacOSX 10.5

0 投票
1 回答
130 浏览

cocoa - 跨多个 NSMenu 共享 NSMenuItem

我在同一个应用程序中有多个菜单,并希望在它们之间共享子菜单。

为简单起见,假设一个是主菜单,另一个是停靠磁贴菜单。

我的子菜单包含相当多的项目(比如说字体名称),出于各种原因,我需要对其中的许多项目进行 iboutlet 引用。

在 IB 中,我找不到任何“共享”这些子菜单的方式,所以我最终复制了 IB 定义(即在两个不同的地方手动重新创建每个项目),保留对两个 nsmenuitem 的引用,而不仅仅是一个等。这不好。

有没有办法在多个 NSMenus 之间共享子菜单定义?

我试图在 IB 中创建一个顶级菜单项,但我似乎无法将它链接到菜单定义中的任何内容。此外,我担心即使我设法以编程方式执行此操作,它也可能会弄乱绑定、响应者层次结构、内存管理等。

是否有这样做的最佳实践?有人做过吗?结果如何?

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?