新 NSTableView 组行的通知

Notification for new NSTableView Group Row

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

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

我正在考虑跟踪与剪辑相关的行视图坐标 view/scroll 视图...您会采用这种方法吗?

有什么建议吗?

when it becomes a group row

您是否希望某行随着时间的推移而改变是否为组行?

I'm looking to change the look of my row view […] when it becomes the group row that is stuck at the top of the NSTableview.

让行视图的 -drawRect: 方法参考它自己的 floating 属性 并根据其值进行不同的绘制。您可能需要覆盖 -setFloating: setter 以将行视图标记为也需要显示。

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")
    }
}

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