0

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

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

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

有什么建议么?

4

2 回答 2

1

当它变成一个组行时

您是否期望一行随着时间的推移而改变它是否是组行?

当我的行视图变成卡在 NSTableview 顶部的组行时,我希望改变它的外观。

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

于 2017-02-05T01:33:21.860 回答
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")
    }
}

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

于 2017-02-05T11:21:42.203 回答