我已经在 NSTableView 的委托(delegate)中实现了 - (CGFloat)tableView:(NSTableView *)tableView heightOfRow:(NSInteger)row
,以将表格行的高度调整为最左边列的宽度变化。问题在于,只有该列在调整大小期间重绘(以及在调整大小期间滑入 View 的任何列)。
调整大小后会产生下面的时髦视觉效果。我想要的是一种在用户调整列大小时告诉 TableView 完全重绘的方法。现在我能做的最多的事情就是在该列完成调整大小后调用 setNeedsDisplay
。
最佳答案
查看 NSTableView
method noteHeightOfRowsWithIndexesChanged:
。您需要为高度已更改的行创建一个 NSIndexSet。
更新: 为了有一个安全的地方来调用它,您可以子类化 NSTableColumn 来重写 setWidth: 方法。然后,您可以发布您的表委托(delegate)可以观察到的自定义通知,或者您也可以覆盖 TableView 并让列告诉表直接告诉其委托(delegate)。
关于objective-c - 在 NSTableView 中调整 NSTableColumn 大小时强制重绘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4558179/