问题标签 [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 回答
780 浏览

objective-c - 更新 NSMenu 中的项目时的内存管理

我想知道这是否是避免 Cocoa 应用程序内存泄漏的正确方法。

我的应用程序有一个更新NSMenu项目的方法:

如您所见,在添加新项目之前,我会删除所有以前的项目并将其发送release给他们。然后我添加新的。

这是内存管理的最佳方式吗?

如果我在 Xcode 4.1 中分析我的代码,它会说存在潜在的内存泄漏。

0 投票
1 回答
914 浏览

cocoa - NSView 自定义上下文菜单和键

我在应用程序的主窗口中有一个 NSCollectionView,用于管理自定义 NSView 项目的集合。每个自定义视图都有一个分配给它的上下文菜单。我想为某些项目添加快捷键,例如将“删除”键与“从集合中删除项目”操作相关联。我已经通过 IB 为上下文菜单项添加了等效键,但问题是如何使集合项响应按下的键?

我知道我可以通过将此菜单添加到 NSApp 的主菜单并跟踪所选项目来实现这一点。除此之外还有什么办法吗?

0 投票
2 回答
1168 浏览

objective-c - 在 NSMenu 上使用 NSStatusItem-Objective-C/Cocoa 的箭头控制 NSSlider

我想创建一个带有垂直滑块的状态项,就像 Apple 提供的声音控制一样。我的问题是:我如何让它对向上/向下箭头键做出反应,就像声音菜单中的滑块一样?

我试图创建一个 NSSlider 子类,当按键被按下时会增加/减少它的值(见下文),但我需要让它成为第一响应者。为了使它成为第一响应者,我将主类设置为这个菜单的代表并添加了这个方法:

我应该调用哪个窗口?我应该以其他方式这样做吗?你会怎么做?

滑块子类:

我已经对其进行了测试,当它是具有正常 NSWindow 的第一响应者时它可以工作。我只是不能用状态栏项目中的菜单来做到这一点。

0 投票
3 回答
2205 浏览

macos - 系统正在将不需要的项目添加到我的应用程序的自定义上下文菜单中

我已经为我的 Cocoa 应用程序定制了上下文菜单,这样只有某些项目是可见的。尽管我进行了自定义,但我发现系统添加了一个菜单项——“作为语音轨道添加到 iTunes”。

我尝试从菜单中删除此项目,但不知何故,我无法获得控制权。有没有办法可以删除这个项目,还是我必须编写一个 AppleScript 来禁用键盘快捷键下的 iTunes 选项?我讨厌这样做,因为我必须为用户恢复它。

0 投票
1 回答
504 浏览

cocoa - 自定义如何从“打开最近的”NSMenu 打开项目

我正在使用图像填充“打开最近”菜单,因为它们正在我的应用程序中进行处理,但是当我单击列表中的一个项目时,我收到错误“应用程序 MyApp 无法打开 PNG 类型”或类似内容。

在哪里可以自定义代码以指定如何“打开”我的应用程序可以处理的图像?

回答
感谢 Antwan 为我指明了正确的方向。我只是在我的代表中实现了以下内容:

0 投票
1 回答
971 浏览

objective-c - 创建 NSMenuItems 的动态计数

我目前正在为 Mac OS X 中的动态 UI 苦苦挣扎。我创建了一个菜单栏项,并希望在其中添加一个动态的 MenuItems 计数。

元素的数量取决于计算机上的网络接口。我的 Mac 有两个接口,另一个可能只有一三个。

元素的创建不是问题。但我想在后面的代码中引用这些元素。

然后我想更新元素的标题:

当然,“点击”操作会返回一个未声明的标识符(menuItem)。问题是,我不能在头文件中声明它们,因为它们是动态的,它们可能达到 100 个项目的数量,所以我不能声明 10 个项目并使用它们。

我该如何处理这些情况?希望你能帮我!

问候,朱利安

0 投票
1 回答
5764 浏览

objective-c - NSMenuItem 目标和动作

我想获得有关将函数绑定到 NSMenuItem 的帮助。

我有一个对象 Tab 数组,我想为每个 Tab 对象绘制一个 NSMenuItem。我成功地绘制和添加了 NSMenuItem 但我希望当用户单击该项目时,它会调用(void)play相关 Tab 对象的实例方法。我已经尝试过使用以下代码,但它似乎无法正常工作,因为菜单项保持灰色。

这是 Tab.h

这是调用函数 http://imageshack.us/photo/my-images/3/capturdcran20111127205.png/后显示结果的图片的链接 (对不起,我没有足够的声誉)。

0 投票
2 回答
3881 浏览

cocoa - 如何在鼠标光标处显示 NSMenu?

我正在开发一个应用程序,我想在当前鼠标位置旁边显示一个 NSMenu“上下文菜单”。此时,我知道如何从 WebView 触发命令以显示上下文菜单,但我似乎无法让菜单显示在屏幕上的正确位置。似乎我的坐标与我需要的垂直倒置。这似乎是一个如此简单的问题,但我花了很多时间尝试最好的“最佳实践”解决方案。我是否需要弄清楚鼠标在哪个屏幕上并手动计算 y 坐标?

这是我非常简单的代码:

有人可以为我提供示例代码,以最自然的方式完成这项工作。

0 投票
2 回答
2822 浏览

objective-c - 显示菜单的披露按钮

请给我一个建议,如何在我的屏幕截图中实现这种披露按钮 - 一个披露“向下箭头”按钮在点击时显示一个菜单:

我想要什么

我尝试了两种方法,使用NSPopupButtonNSButton显示样式和手动菜单显示:

  • NSPopupButton一直显示默认值文本,并且无法在 Interface Builder 中将大小调整为较窄的大小。

    NSPopupButton

  • NSButton显示一个菜单,但它显然错位到我单击按钮的位置,而不是底部边缘。我正在使用以下代码:

    带有菜单的 NSButton

那么显示这样一个菜单的正确方法是什么?

0 投票
1 回答
1318 浏览

cocoa - 从NIB 将NSMenu 设置为NSWindow 的主菜单?

我的应用程序中有两个菜单,一个将附加到 NSStatusBar,另一个将是应用程序的主菜单。

有没有办法从笔尖将 NSMenu 之一设置为主要的?我正在查看另一个项目的笔尖,我看到实际在笔尖中定义的菜单,而在我的笔尖中它没有正确显示。

现在我的应用程序根本没有菜单。

这是我的笔尖的样子:

我的笔尖

我希望它看起来如何:

我希望它如何显示