新NSTableView Group Row的通知

时间:2017-02-05 01:19:53

标签: nstableview nstablecellview nstablerowview

我希望在行视图变为组行时更改我的行视图的外观,或者更具体地说,当它变为停留在NSTableview顶部的组行时。

我想知道是否有通知或某些属性可以检查。理想情况下,我喜欢做某种动画,因为它从一个视图到另一个视图的顶部范围内。

我正在思考跟踪剪辑视图/滚动视图相关的行视图坐标...这会是你采取的方法吗?

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

  

当它成为一个组行时

您是否希望更改某一行是否随时间变化?

  

当我想要在NSTableview顶部停留的组行时,我想要改变行视图的外观。

让行视图的 pbItemtype.BackColor = Color.Transparent; // Change parent for overlay PictureBox... pbItemtype.Parent = pbGrade; 方法查询其自己的-drawRect:属性,并根据其值进行不同的绘制。您可能需要覆盖floating setter以将行视图标记为需要显示。

答案 1 :(得分:0)

Ken Thomases的建议只是我需要的建议。我想直接更改NSTableCellView,所以我从那里调用了以下方法,但您也可以直接从自定义NSTableRowView调用它。

来自自定义NSTableCellView:

override func draw(_ dirtyRect: NSRect) {
    super.draw(dirtyRect)
    if let rowView = self.superview as? NSTableRowView, rowView.isFloating == true {
        Swift.print("Row is Floating")
    }
}

来自自定义NSTableRowView:

override func draw(_ dirtyRect: NSRect) {
    super.draw(dirtyRect)
    if self.isFloating == true {
        Swift.print("Row is Floating")
    }
}

允许我根据需要更改视图。谢谢你肯