- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我是面向对象编程的新手。来自网页设计背景,并在我的项目中需要的地方完成了大部分设计工作或一些或多或少的中间脚本编写。但渴望学习并仍在寻找“正确”的方式;-)像你们一样做事情。不是我的 Script Kiddie Mind 告诉我的:D。很抱歉,如果这确实是一个 super 初学者的问题,但我宁愿从一开始就掌握“正确”的概念。
我正在根据我的文档目录中的文件夹内容以编程方式使用 NSMenuItems 填充 NSMenu。我正在迭代这个家伙的子文件夹,获取每个子文件夹的 URL,使用
提取文件夹名称let folder = el.URLByDeletingPathExtension?.lastPathComponent
并根据这些名称创建 NSMenuItems
let menuItem = statusMenu.insertItemWithTitle(folder!, action: #selector(StatusMenuController.doFancyStuff), keyEquivalent: "", atIndex:0)"
到目前为止一切顺利。现在,我如何将关联的 URL 与 MenuItem 一起存储以供以后使用,例如在触发操作时对其进行操作?
通过单击该项目,我想要执行一个操作,这当然需要完整的文件夹 URL。我的第一个想法是用一个名为“path”的新变量来扩展 NSMenuItem 左右。但由于扩展中不允许存储值,这是一个死胡同。
真正的程序员如何处理这种情况?使用字典并存储项目及其各自的 URL?能行不行?但这是正确的方法吗?或者通过获取菜单项标题并将其“重新附加”到基本文件夹 URL 来获取完整的 url?这也可以工作。或者您是否将 URL 交给将作为属性调用的方法/操作?我真的很想远离困惑的代码:)所以非常感谢您的专业见解。
感谢您的宝贵时间!安迪
最佳答案
NSMenuItem
有特性representedObject
可以用于此目的。
来自文档:
By setting a represented object for a menu item, you make an association between the menu item and that object. The represented object functions as a more specific form of tag that allows you to associate any object, not just an arbitrary integer, with the items in a menu.
如果您想存储更多信息而不仅仅是 URL,您还可以分配一个集合对象,例如 Array
或Dictionary
甚至是 representedObject
的自定义类.
关于xcode - 存储/关联 NSMenuItems 以及文件夹 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36707983/
我想执行绑定(bind)到 NSMenuItem 的操作,我正在为 osx 应用程序开发一个插件。因此我不知道菜单项的目标方法。 (菜单项的目标返回 nil) 如何以编程方式按下 NSMenuItem
我可以使用商品的标签属性来存储特殊的 key /ID 还是用于其他用途? 预期用途示例: - (void)awakeFromNib { [self.popup addItemWithTit
我正在开发一个基于 Cocoa 文档的应用程序。我的文件菜单中有一个名为“Export Things...”的菜单项。此菜单项连接到第一响应者,并调用MyDocument中的选择器。到目前为止一切顺利
当您在 Mac 上按下 NSMenuItem 键盘快捷键时,菜单本身会突出显示,以指示该菜单中的操作已被激活。 如果您不熟悉该效果,请立即尝试选择一些文本,然后按 CMD-C,观看“编辑”菜单。它将闪
我想在 NSMenuItem 自定义 View 中放置一个动画进度条。这在 Apple 的 MenuItemView 示例中得到了演示,但它没有动画(至少在 10.5 中没有,并且该示例显然来自 10
我正在创建一个状态栏应用程序,它需要在文本字段中输入 URL。文本字段是 NSMenuItem 的 subview 。我面临的问题是,文本字段的值无法更改,只能“间接突出显示”(它不是正常的蓝色突出显
我有对最外层菜单的引用,但我试图获取对嵌套在子菜单中的 NSMenuItem 的引用: NSMenuItem* file_menu = [menu itemWithTitle:@"File]; fil
我有一个 NSMenuItem,我想为其使用等效的 Command-Option-C 键。但是,当我在 IB 中设置等效键时,应用程序实际运行时它不会与菜单项关联。该条目没有可见的等效键,并且该命令不
我试图理解 Cocoa 中的一些东西,但我陷入了一件事。我正在关注Minimalistic Cocoa Programming ,其中有一个 NSMenuItem 负责终止应用程序。现在,我想创建另一
我有一个 NSMenuItem,我需要更新它以显示进度(就像时间机器对其备份所做的那样)。问题是,当我在该 NSMenuItem 上设置新的 title 时,title 没有改变。 当我关闭并重新打开
我见过这样的事情: 在菜单项右侧的 Menulet 中,我不知道该怎么做。 谁能详细说明一下吗?谢谢! 最佳答案 您只能在 Cocoa 中使用 NSMenuItem 的自定义 View 行为来执行此操
我正在我的应用程序上创建一个状态栏,菜单显示正常,但它似乎无法访问我为其设置的操作。 我通过 C 函数添加状态栏: void MyFunction(CefRefPtr browser) { M
我有一个 NSMenuItem,我需要更新它以显示进度(就像时间机器对其备份所做的那样)。问题是,当我在该 NSMenuItem 上设置新的 title 时,title 没有改变。 当我关闭并重新打开
我以编程方式创建一个 NSMenuItem,但它被禁用。如果我重写 validateMenuItem: 方法并为所有项目返回 YES,则菜单项工作正常。 当我告诉菜单 autoEnableItems
我对 NSMenu 进行了子类化,并通过 Interface Builder 连接了一堆 NSMenuItem。我已经通过调试器进行了测试,看看它们确实得到了初始化。 菜单设置为不自动启用项目。尽管如
我在 Swift 1.2 中有一个基于文档的应用程序。我想以编程方式生成对当前 NSDocument 有操作的 NSMenuItem,然后检查该选择。这是我到目前为止所拥有的: AppDelegate
假设我有一个 menuBar 应用,子菜单上有 3 个项目: let delaySubMenu = NSMenu() delaySubMenu.addItem(NSMenuItem(title: "5
我能够使用以下代码以编程方式创建菜单项。 primaryMenu.addItem(NSMenuItem(title: "MenuTitle", action: nil, keyEquivalent:
我目前正在向我的 NSMenu 添加一个 NSMenuItem,并且我能够成功检测并处理点击事件。但是,我想添加第二个选项并检测用户是否在按住 SHIFT 的同时单击了 menuItem let me
我的项目中有一个 NSMenuItem: var statusBar = NSStatusBar.systemStatusBar() var statusItem : NSStatusItem = N
我是一名优秀的程序员,十分优秀!