Swift & NSTableView - 只需选择一行

Posted

技术标签:

【中文标题】Swift & NSTableView - 只需选择一行【英文标题】:Swift & NSTableView - Simply select a row 【发布时间】:2014-08-12 19:35:43 【问题描述】:

我想以编程方式在我的 NSTableView 中选择一行,只有一列。

func selectColumnIndexes(_ indexes: NSIndexSet!,
    byExtendingSelection extend: Bool)

我一直在玩这个,但我不知道如何写“选择第 2 行”。 我是否必须从连接到我的表视图的@IBOutlet 的变量开始?我必须以某种方式表明它是关于我的 NSTableView 的。

谢谢!

【问题讨论】:

【参考方案1】:

@Isaiah 在 Swift 3.0 中的回答:

.selectRowIndexes(NSIndexSet(index: 0) as IndexSet, byExtendingSelection: false)

【讨论】:

【参考方案2】:

好的,我知道了。原来是

@IBOutlet weak var NoteTableView: NSTableView!
NoteTableView.selectRowIndexes(NSIndexSet(index: 0), byExtendingSelection: false)

我不太清楚NSIndexSet 的部分。我一直在摆弄init(),结果证明这是不必要的。

【讨论】:

【参考方案3】:

Swift 4 解决方案

我创建了一个扩展程序,以便更轻松地执行此操作。此外,如果您在表格视图单元格上实现了单击操作,这也会调用它

extension NSTableView 
    func selectRow(at index: Int) 
        selectRowIndexes(.init(integer: index), byExtendingSelection: false)
        if let action = action 
            perform(action)
        
    


/// USAGE:
NSTableView().selectRow(at: 0)

【讨论】:

以上是关于Swift & NSTableView - 只需选择一行的主要内容,如果未能解决你的问题,请参考以下文章

Swift NSTableview 拖动选择多行而不是拖出表格

Swift NSTableView, NSFileManager, 试图将文件名加载到 TableView 中,并且遇到选项问题

非法 NSTableView 数据源

OSX 基于视图的 NSTableView 字体更改

nstableview 拖放与自定义单元格视图

如何在 macOS 10.12+ 上自定义 NSTableView 标头?