如何在不使用 NSTreeController 的情况下获取 NSOutlineView 的选定项?
如何使用我自己的数据源获取 NSOutlineView 的选定项目。 我看到我可以获得 selectedRow 但它返回一个相对于大纲状态的行 ID。唯一的方法是跟踪项目的展开折叠状态,但这似乎很荒谬。
我希望得到类似的结果:
array = [outlineViewOutlet selectedItems];
我查看了其他类似的问题,他们似乎没有回答这个问题。
How do I get the selected item of an NSOutlineView with using my own data source.
I see I can get selectedRow but it returns a row ID relative to the state of the outline. The only way to do it is to track the expanded collapsed state of the items, but that seems ridiculous.
I was hoping for something like:
array = [outlineViewOutlet selectedItems];
I looked at the other similar questions, they dont seem to answer the question.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
NSOutlineView
继承自NSTableView
,因此您可以获得很好的方法,例如selectedRow
:NSOutlineView
inherits fromNSTableView
, so you get nice methods such asselectedRow
:Swift 5
NSOutlineView 有一个委托方法
outlineViewSelectionDidChange
额外提示:您还可以获取所选项目的
父项目
像这样:Swift 5
NSOutlineView has a delegate method
outlineViewSelectionDidChange
Bonus Tip: You can also get the
parent item
of the selected item like this:@Dave De Long:很好的答案,这里是 Swift 3.0 的翻译。
显示的是 item 来自具有 fileURL 属性的类 FileSystemItem 的情况。
@Dave De Long: excellent answer, here is the translation to Swift 3.0
Shown is a case where item is from class FileSystemItem with a property fileURL.