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

cocoa - NSMenu 中的 NSView——如何制作“键”来接受键盘命令 [具体来说,返回]

我有一个文本字段和一个按钮,位于菜单项内的视图中。该按钮将文本字段中的字符串提交给一个函数,并且工作正常。但是,我也将按钮的键设置为“返回”。没有拾取键盘命令,可能是因为菜单不是“键”窗口。

我知道如何使窗口成为关键窗口(makeKeyAndOrderFront)——与菜单中的视图等效的是什么?

0 投票
2 回答
6315 浏览

objective-c - 使用动作选择器预设将项目添加到 NSMenu

我是 Obj-C/Cocoa 编程的新手,我在尝试将菜单项动态添加到 NSMenu 实例并在插入时已设置项操作选择器时遇到问题。

我可以,很好地添加动态菜单项,但是当通过菜单单击该项目时,操作选择器不会触发。

下面的第一行是我用来添加菜单项的代码行。您可以将我正在设置操作:(SEL)aSelector 设置为“openEchowavesURL”函数。

这个函数在同一个控制器类文件中,我在下面包含了函数定义。

我只是调用了错误的选择器语法或其他东西吗?或者单击时让菜单项调用选择器的技巧是什么?



0 投票
1 回答
371 浏览

objective-c - 无法从文档控制器填充 NSMenu

我有一个 MainMenu.xib 和一个 MyDocument.xib。我需要从我的文档控制器动态填充一些 NSMenuItem,但我不知道如何从 MainMenu.xib 获取它。

我尝试将 NSObject 添加到 MainMenu.xib 并使其成为我的文档控制器的实例,但我无法从控制器上的 NSArrayController 填充 NSMenuItem。

我应该只在代码中执行此操作,还是有另一种解决方法?

0 投票
1 回答
5366 浏览

cocoa - 禁用/启用应用程序菜单项

在尝试学习菜单处理的基础知识。我的测试应用程序的菜单栏有 3 个菜单——即“TestApp”、“File”和“Help”。我发现我可以完全删除这些菜单,只需调用say:

但是,我只想暂时禁用它们(将它们变灰)。请问有没有同样简单的方法可以做到这一点?

0 投票
2 回答
660 浏览

cocoa - 寻找 popUpMenuPositioningItem:atLocation:inView: 相当于 10.5

我正在开发一个需要在各种情况下在屏幕上显示上下文菜单的应用程序。在我正在编写的函数中,我无权访问任何 NSWindows 或 NSViews。我想使用 popUpMenuPositioningItem:atLocation:inView 因为这个函数在 10.6 中非常适合我。但是,我们需要支持 10.5,因此我无法使用此功能。

如文档中所述,我最感兴趣的功能是:

如果 view 为 nil,则在屏幕坐标系中解释位置。这允许您弹出一个与任何窗口断开连接的菜单。

基本上,我需要在屏幕上显示给定位置的上下文菜单,但没有任何关联的视图。

有没有办法在 10.5 上实现这一点?

0 投票
3 回答
5296 浏览

cocoa - 强制 Cocoa App 主菜单的 NSMenu(嵌套子菜单)更新

  1. 我插入了一些子菜单作为主菜单的窗口项子菜单
  2. 我有一个我的对象的实例(假设它的类名是 MenuController)从 NSObject 继承并支持来自 NSMenuDelegate 方法的 2:-numberOfItemsInMenu:--menu:updateItem:atIndex:shouldCancel:
  3. 此实例作为蓝色对象添加到 NIB 中以在运行时唤醒
  4. 步骤 2-3 中的对象配置为子菜单的委托(步骤 1)

现在,我可以在运行时提供子菜单内容。

接下来,我执行以下操作:我可以添加新项目或从通过协议和委托映射到实际子菜单的数组(在包含菜单标题的 MenuController 内)中删除旧项目。一切正常。除了一件事:我喜欢为我的动态菜单项分配快捷方式。CMD-1、CMD-2、CMD-3 等

窗口/我的子菜单/我的项目1 CMD-1,我的项目2 CMD-2,...

所以,为了调用一些我不想去 Window / MySubmenu / MyItem 用鼠标单击它的项目,我只想按一个快捷方式,比如 CMD-3 来调用该项目。

好的,它会定期按预期工作。但是,一般来说,除了打开 Window / MySubmenu 重新加载其内容外,我无法通知 Main Menu 我的嵌套子菜单更改。重现问题的一种稳定方法 - 只需尝试删除某些项目并按下分配给它的旧快捷方式,在您创建新项目作为已删除的替换后 - 宾果游戏 - 在导航到 Window / MySubmenu 以查看当前子菜单内容之前快捷方式将不起作用.

我不知道强制主菜单重建其子菜单的方法...我尝试过:[[NSApp mainMenu] update] 和使用 NSNotificationCenter 发送 NSMenuDidAddItemNotification、NSMenuDidRemoveItemNotification、NSMenuDidChangeItemNotification 的游戏

我尝试到我的子菜单并显式调用更新方法 - 没有办法......有时 AppKit 调用我的委托方法 - 我看到了,有时它不想调用任何东西。看起来像一个随机策略。

如何确保在“某些调用”之后我的子菜单在内部数组修改后处于实际状态?

0 投票
4 回答
5927 浏览

cocoa - 如何将多个具有相同标题的菜单项添加到 NSPopUpButton(NSMenu)?

正如文档所说,如果它们都具有相同的标题,则不可能向 NSPopUpButton 添加两个菜单项。我试图将菜单项添加到 [popupButton menu],但没有运气。我还尝试创建一个新菜单,向其中添加项目,然后使用 [popupButton setMenu:newMenu],但没有。菜单总是每个名称只显示一项。

但我知道这应该是可能的,如果您尝试在 iTunes 中创建智能播放列表,您可以从左侧弹出按钮中选择“播放列表”,从中间选择“=”,右侧将保存每个播放列表的菜单项iTunes 即使他们有相同的标题。那么他们是怎么做到的呢?

0 投票
1 回答
532 浏览

cocoa - 如何制作 NSMenu 最近列表

我正在为某人开发一个小型 URL 缩短应用程序,我需要一个类似于 Droplr 的列表,其中包含所有最近缩短的 URL。该列表应该是主菜单的子菜单,它附加到一个 NSStatusItem。

每次缩短 URL 时,我都需要让该列表添加一个项目,并且我希望在单击时收到通知,其中包含链接。该列表应包含不超过十个最近的 URL。

我还需要有一种方法来存储列表,以便在应用程序再次启动时它会出现。我认为使用 Core Data 不是一个好主意,但我不确定我应该使用什么。

0 投票
1 回答
955 浏览

cocoa - 如何在 NSMenu 中获取文本框?

我很确定我在某个地方看到过这个(不包括帮助菜单),我觉得你可以在豹子的 ib 下拖一个。这并不重要,但它会进入停靠菜单或服务。谢谢

0 投票
1 回答
294 浏览

cocoa - NSMenuItem 没有响应 setIndentationLevel:

如果我调用setIndentationLevel:一个 NSMenuItem 则什么都不会发生,如果我indentationLevel在将其设置为 3 后调用它,它会返回 3,就像它应该的那样。我正在将菜单项添加到 Dock 菜单中,但没有看到任何变化。