问题标签 [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.
cocoa - 为什么我不能从每个窗口打开首选项?
我遇到了这个显示主窗口的 Cocoa 应用程序(源代码)。
只要这个窗口是键,就可以从主菜单打开首选项窗口,也可以通过点击Command-,但是当主窗口不是键并且来自同一个应用程序的另一个窗口是,NSMenuItem 是灰色的并且键盘快捷键没有响应。
我检查了与主菜单关联的 xib 文件,并且 NSMenuItem 正在向openPreferences:(id)sender
应该是 NSApplication 的 FirstResponder 发送 IBAction。
我错过了什么(我还是 mac cocoa 编程的新手)?如何修复它以便可以从每个应用程序窗口访问首选项?
cocoa - 禁用 NSMenuItem
我以编程方式创建一个 NSMenuItem 并且它被禁用。如果我重写 validateMenuItem: 方法并为所有项目返回 YES,则菜单项可以正常工作。
当我告诉菜单 autoEnableItems 并且不覆盖 validateMenuItem: 方法时,为什么它不会被启用?
objective-c - NSMenuItem 自定义视图上方的间隙
我正在使用setView:
方法NSMenuItem
来设置自定义视图。在这个自定义视图中,有一个图像占据了整个视图。这个NSMenuItem
自定义视图是菜单中的第一个,但问题是它不与菜单顶部齐平,有一个很大的差距,你可以在这里看到:
为什么会发生这种情况,我该如何阻止它?
编辑
我现在正在使用此代码,但我正在EXC_BAD_ACCESS
上线InstallControlEventHandler
。
还要注意这条线metrics.top = 0
,这条线应该消除顶部的间隙。但是我不能让它工作那么远。有谁知道为什么我会在EXC_BAD_ACCESS
那里收到一个。我已经创建并分配了,statusMenu
所以它肯定可以工作吗?
objective-c - NSMenuItems 消失的问题
我在 Interface Builder 中为我的应用程序的主菜单禁用了“自动启用菜单项”,因为在加载某些视图时我需要禁用一些菜单。我遇到了一个问题。每当我的应用程序与另一个应用程序(例如 Safari)通信时,所有菜单都会被禁用,我必须强制退出并重新启动应用程序。什么可能导致这种情况发生?
objective-c - 在 NSMenuItem 中使用 NSProgressIndicator
我正在尝试在状态栏菜单中使用 NSProgressIndicator(不确定)。我使用 NSView 对象作为菜单项的视图,然后对进度指示器进行子视图以显示它。但是每当我尝试调用 startAnimation: 时,什么都没有发生。当我尝试在普通的 NSWindow 上做同样的事情时,它可以完美地工作,只是在 menuitem 内时不行。
我对可可和objective-c都是新手,所以我可能忽略了一些“明显”的东西,但我已经搜索了很多解决方法但没有成功。我发现一些关于菜单项的内容在显示时无法更新,您需要使用无边框窗口。但我无法在任何文档中确认这一点。
编辑:
好的,现在几乎可以工作了。当使用 setUsesThreadedAnimation: 并从一个 MenuDelegate 的 menuWillOpen 中创建一个新线程。该线程运行一个本地方法:
这将在打开菜单时随机(?)启动进度指示器。如果我startAnimation:
不经过就直接调用doWork:
(仍然使用新线程),它永远不会起作用。进度条不会setUsesThreadedAnimation:
为动画创建自己的线程吗?
objective-c - 从 AppController 更改 MenuController 中的 NSMenuItem 状态?
我的代码分为两个主要实现:MenuController.m 和 AppController.m,每个都有头文件。
我有几个用户首选项,它们使用 NSUserDefaults 存储,并通过 NSMenuItems 进行更改,以便在启用时显示复选标记(使用setState: NSOffState)。我的设置只缺少一点——如果选项在首选项中打开,我需要应用程序在启动时为这些菜单项设置状态。但是,我知道在应用程序启动时设置某些内容的唯一方法是将它放在awakeFromNib方法中,并且它位于 AppController 中,并且无法访问在MenuController中实例化的 NSMenuItem。
我对 Objective-C 还很陌生,并且由于这个网站上有许多有用的教程和答案,我已经成功地走到了这一步,但现在我只是被难住了。
我尝试使用类和对象方法来更改设置,但失败了——我需要使用 NSMenuItems 的现有实例。 validateMenuItem看起来很有希望,但它只启用和禁用菜单并且不设置状态。
相关代码(我认为):
来自 MenuController.h:
来自 MenuController.m:(更改首选项和 setState 的方法效果很好)
来自 AppController.m:(不起作用,但这是它的要点)
谢谢你的帮助!
cocoa - 带有多个参数的@selector
首先我的代码:
我想用选择器item
作为我的press:
方法的参数。
非常感谢你 :)
PS:我是为 Mac 而不是 iPhone 做这个。
objective-c - NSMenu --> 添加子菜单 --> 接收选择事件
我需要为表格的选定行创建一个菜单,我可以通过覆盖来创建
表格的方法,此特定菜单有两个子菜单,我可以制作子菜单但面临以下问题
1 -- 要在 MenuItem 中添加子菜单,我需要从不同的类/接口获取子菜单,我正在调用以下方法
该函数的原型如下
实现如下,
我可以在这个子菜单上看到图像,字符串,但我面临的问题是这个菜单根本没有启用,任何人都可以指导我,我在哪里犯了错误,
此函数将返回菜单和我将添加的菜单,如下所示,
提前致谢 :)
cocoa - 选择后如何闪烁自定义 NSMenuItem 视图?
我需要为 NSMenuItem 分配一个视图并进行一些自定义绘图。基本上,我在当前选定的菜单项旁边添加了一个小删除按钮,等等。但我希望我的自定义菜单项在所有其他方面看起来和行为都像常规菜单项。根据文档:
具有视图的菜单项不绘制其标题、状态、字体或其他标准绘图属性,而是将绘图职责完全分配给视图。
好的,所以我不得不复制状态列的外观和选择渐变,这并不难。我遇到问题的部分是菜单项在选择后“闪烁”或“闪烁”的方式。我正在使用 NSTimer 来尝试模仿这个小动画,但它只是感觉不对劲。它闪烁多少次?我应该使用什么时间间隔?我已经尝试了很多,只是感觉不正常。
有没有人这样做过或对如何向菜单项添加按钮有其他建议?也许应该有一个专门用于定制可可绘图的堆栈交换站点......
objective-c - 菜单项已启用,但仍显示为灰色
我有一个菜单,其中包含在界面生成器中创建的几个项目。那里看起来不错,并选中了“启用”。但是当我运行应用程序时,所有的菜单项都是灰色的。
我检查过isEnabled
,它返回true。
此外,以编程方式创建的菜单项(使用initWithTitle
和不使用界面生成器)也可以正常工作。
我在这里错过了什么吗?我对 OS X 开发真的很陌生。