gpt4 book ai didi

xcode - 存储/关联 NSMenuItems 以及文件夹 URL

转载 作者:行者123 更新时间:2023-11-30 13:29:44 25 4
gpt4 key购买 nike

所以我是面向对象编程的新手。来自网页设计背景,并在我的项目中需要的地方完成了大部分设计工作或一些或多或少的中间脚本编写。但渴望学习并仍在寻找“正确”的方式;-)像你们一样做事情。不是我的 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,您还可以分配一个集合对象,例如 ArrayDictionary甚至是 representedObject 的自定义类.

关于xcode - 存储/关联 NSMenuItems 以及文件夹 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36707983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com