【问题标题】:Xcode Swift. How to programmatically select Cell in view-based NSTableViewXcode 斯威夫特。如何在基于视图的 NSTableView 中以编程方式选择单元格
【发布时间】:2016-09-08 18:07:51
【问题描述】:

我可以单击一个单元格并编辑其内容。但是,可以通过编程方式选择一个单元格,而不是单击/选择一个单元格 - 基本上是让一个单元格焦点准备好进行编辑。

StackOverflow 上有人问了关于 UITableView 的相同问题,给出的答案是:-

let indexPath = NSIndexPath(forRow: 2, inSection: 0)
tableView.selectRowAtIndexPath(indexPath, animated: true, scrollPosition: .Middle)

selectRowAtIndexPath 是否选择一个单元格?在任何情况下,我的 NSTableView 似乎都没有 .selectRowAtIndexPath(... 方法。

请指点我一个资源,我可以从中开始,然后自己解决剩下的问题。

【问题讨论】:

    标签: swift select cell nstableview


    【解决方案1】:

    在问这个问题之前,我已经用谷歌搜索了两天。但是现在几乎在发布问题后我设法让它工作。 事实上,它是如此简单,我不敢相信花了这么长时间才弄明白。

    // Assuming we want to programmatically select Column 4, Row 5
    myTableView?.editColumn(4, row: 5, withEvent: nil, select: true)
    

    在我的旅行中,我发现有几十个人在问这个问题,但没有简单的答案。或者实际使用 NSTableView 而不是 UITableView 以及 tableView 是“基于视图”而不是基于单元格的答案。所以我希望我在这里发布这篇文章可以帮助其中一些人。

    【讨论】:

      【解决方案2】:

      如果您只想突出显示表格视图单元格或行并通过 NSTablView 的 tableViewSelectionDidChange 委托方法对其执行一些操作,则可以使用它。

      mytableView.selectRowIndexes(IndexSet([indexOfTheCellWantToSelect]), byExtendingSelection: true)
      

      【讨论】:

        【解决方案3】:

        我觉得这很干净......作为单元格的扩展

        extension NSTableViewCell
        {
            func select()
            {
                guard let row = self.tableView?.row(for: self) else { return }
        
                self.tableView?.selectRowIndexes(IndexSet([row]), byExtendingSelection: false)
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-06-02
          • 2023-03-31
          • 2021-03-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多