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

objective-c - Cocoa AppKit - 关闭模式窗口(即弹出或上下文菜单)并按下当前悬停在上方的按钮

基本上我想创建系统菜单栏中提供的效果。用户按下菜单标题之一,当他在不同的标题上移动时,菜单会自动打开。

问题是,如果我打开一个按钮的弹出菜单,用户必须再次单击才能关闭它。整个运行循环处于暂停状态,因为我相信弹出菜单是模态的。当用户移动到下一个按钮时,如何才能发送 [somePopUpMenu cancelTracking]?

这是我目前在我的 NSWindow 子类中尝试的代码。关键是一旦鼠标退出一个按钮,鼠标在下一个按钮上自动点击(leftdown/leftup),定时器失效,弹出菜单取消。

假设弹出菜单打开并且鼠标存在,则触发 leftdown/leftup 事件(我知道这有效,因为我将它们记录在 NSLog 的 mouseDown 和 mouseUp 中),计时器无效,但弹出菜单仍在显示,并且假事件“点击”的另一个按钮不显示任何内容。此外,整个事情进入一个循环,并且由于某种原因发送了疯狂的 mouseDown/mouseUp。

值得注意的是,弹出菜单是在另一个对象中创建的,尽管 hookToMenu 对它有正确的引用(我通过调试/单步执行确认)。

不知道我是否正在破坏事件跟踪计时器或以错误的方式进行操作。我也通过窗口控制器尝试过,但得到了相同的结果。

对此的任何帮助将不胜感激。

0 投票
1 回答
2418 浏览

cocoa - 如何像 Apple Pro Apps 一样自定义 NSMenu?

我想自定义一个NSMenuwith NSMenuItems,所以它看起来像 Apple Pro Apps。

但是我怎样才能定制一个NSMenu?没有绘制方法来改变外观。如果我将 a 设置NSView为 a NSMenuItem,我可以设置背景颜色,但我会失去突出显示和菜单处理。NSMenu此外,不能定制顶盖和底盖。

我只发现了这个提示,但不幸的是没有代码。

带有白色菜单和白色菜单项的深色 TableView

我会很高兴得到一些帮助!

0 投票
1 回答
3355 浏览

cocoa - NSMenu 中的替代菜单项

我有一个NSMenu包含NSMenuItems自定义视图的。我想要它,以便当按下 alt 按钮时,菜单项会改变它们的部分外观(通过它们的视图)。setAlternative然而,我在文档中发现NSMenuItem,实际上我只能在NSMenuItems没有自定义视图的情况下使用它。一旦我设置了自定义视图,就会显示所有菜单项。此外,我尝试在菜单打开时获取按键事件。由于另一个运行循环,NSApplication's sendEvent:直到菜单关闭后才接收事件。因此,我不能只是拦截进来的事件。

有谁知道在打开菜单时按下 alt 键时如何通知我,无论是通过委托还是子类化?

0 投票
2 回答
817 浏览

cocoa - NSMenu 中的第一项不出现

我正在以编程方式制作自己的 NSMenu 并在按下按钮时弹出它。

我创建 NSMenuItems 并使用 NSMenu 方法添加它们insertItem:atIndex:

由于某种原因,菜单中位置为零的任何项目都不会显示。这是菜单应该如何工作的吗?

0 投票
1 回答
243 浏览

cocoa - 显示工作表时可用的主菜单

对通过鼠标单击或通过键盘调用的菜单项有何反应,例如: CMD+Q ?

0 投票
1 回答
165 浏览

cocoa - Cocoa:从不同的菜单项更改对象属性

如果我想从不同的菜单项(想想 - 选项列表)更改观察对象的单个属性,经验法则是什么。

例如,我有一个在单个窗口中显示汽车的应用程序。我有一个带有菜单项的菜单,上面写着 [颜色] 和几个子菜单项,例如 [黑色、绿色、蓝色、红色、白色等]。如何实现这背后的机制,以便每个子菜单项将相同的属性(在本例中为颜色)更改为不同的值。

0 投票
1 回答
1749 浏览

cocoa - 向 WebView 添加上下文菜单

一个简单的,我认为:

我想向 WebView 添加上下文菜单。

在 IB 中,我向 NIB 添加了一个 NSMenu,将其连接到 WebView 的菜单出口,启动并期望能够在 WebView 中进行控制单击并查看弹出菜单。我在上下文菜单上看到的唯一项目是“重新加载”。我可以执行相同的步骤,但将菜单连接到其他视图并且它按预期工作。

为什么连接到 webview 的菜单插座时菜单工作不一样?

谢谢

0 投票
3 回答
5300 浏览

objective-c - Apple 如何在打开时更新 Airport 菜单?(如何在已经打开的情况下更改 NSMenu)

我有一个弹出打开 NSMenu 的状态栏项目,并且我有一个委托集并且它已正确连接(-(void)menuNeedsUpdate:(NSMenu *)menu工作正常)。也就是说,该方法设置为在显示菜单之前调用,我需要监听并触发异步请求,稍后在菜单打开时更新菜单,我不知道应该如何完成.

谢谢 :)

编辑

好的,我现在在这里:

当您单击菜单项(在状态栏中)时,会调用一个运行 NSTask 的选择器。我使用通知中心来监听该任务何时完成,并写下:

并且有:

肯定会调用此方法,因为如果我从菜单中单击并立即返回到它,我会得到一个包含此信息的更新菜单。问题是它没有更新-菜单打开时-。

0 投票
1 回答
535 浏览

cocoa - NSMenu 不开始跟踪

我有一个小可可应用程序,通常在后台运行(作为代理)。有时我希望能够弹出一个上下文菜单(此时没有窗口或某物可见)。

因为我只针对雪豹,所以我尝试了这个:

菜单完美弹出,但如果我将鼠标光标悬停在项目上,它们不会突出显示,我也无法单击它们。

menuItemSelected: 方法如下所示:

知道我做错了什么吗?

0 投票
1 回答
2238 浏览

cocoa - 如何在 NSMenu 处于活动状态(可见)时更新它?

我有一个NSMenu实例,通过它与 Cocoa 应用程序的所有通信都将发生。如果菜单打开,后台不会运行,那么如何在菜单仍处于活动状态时强制更新?