【问题标题】:How can I get the selected cell from a NSOutlineView?如何从 NSOutlineView 中获取选定的单元格?
【发布时间】:2015-03-20 10:30:51
【问题描述】:

如何从 NSOutlineView 中获取选定的单元格? 不是项目,而是单元格。 不是数据单元,而是当前单元本身。

这是一个基于单元格的 NSOutlineView。

【问题讨论】:

    标签: objective-c macos cocoa


    【解决方案1】:
    func getSelectedCell() -> NSTableCellView? {
        if let view = outlineView.rowView(atRow: outlineView.selectedRow, makeIfNecessary: false) {
            return view.view(atColumn: outlineView.selectedColumn) as? NSTableCellView
        }
        return nil
    }
    

    另见NSOutlineView, how to get the selected cell

    【讨论】:

      【解决方案2】:

      使用委托。 willDisplayCell: 在单元格更改其选择状态时调用。

      - (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item {
          id selectedItem = [outlineView itemAtRow:outlineView.selectedRow];
          if (item == selectedItem) {
              // 'cell' is selected cell for 'tableColumn'
          }
      }
      

      【讨论】:

      • 使用NSOutlineViewDelegate的“处理选择”部分中的方法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多