NSTableView 中的预选行不起作用

Pre-selecting row in NSTableView not working

我在 viewDidLoad() 中使用下面的代码尝试在 tableView 对象 (tblProjectNumber) 中预 select 一个 table 行。编译或 运行 时没有错误。

一切都加载正常,一旦加载视图,我可以通过单击鼠标 select table 行而不会出现任何问题。但是,我无法加载包含预先 select 所需的默认行的视图。我在 viewDidLoad() 中尝试了以下代码(参考最后三行)。 table视图不显示 selected 行,并且在加载数据时不滚动索引 (100) 处的行。

override func viewDidLoad() {
    super.viewDidLoad()
    self.view.wantsLayer = true
    self.view.layer?.backgroundColor = NSColor.windowBackgroundColor().CGColor
    self.view.window?.title = "Project Detail Module"
    self.view.window?.titleVisibility

    // sort the list of project numbers so that they display correctly when the view is first loaded
    self.sortProjectNumberArray()
    self.loadProjectRowDataArray()
    self.sortPPRFilesForLatestDate()

    // pre-select table row to load on initial display of the tableView
    let index = NSIndexSet(index: 100)
    self.tblProjectNumber.scrollRowToVisible(100)
    self.tblProjectNumber.selectRowIndexes(index, byExtendingSelection: true)
}

这里的回答:

已提供帮助,但我无法解决问题。此外,在上一个 link 中使用的 selectRowAtIndexPath 调用在 Swift 中似乎不可用,因此它对我也不起作用。

tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? 方法中尝试您的代码。

不知道哪种 select 方法适用于 OSX,但 selectRowAtIndexPath 是适用于 iOS 的正确方法。因此,请尝试 OSX 的所有可能的 selectIndex 方法,但在实际显示表数据的 viewForTableColumn 方法内部。即在显示表数据时..它将检查您想要 selected.

的索引

希望这对您有所帮助!