每次我更改NSTextfield的值时,都会重绘整个tableView(基于视图)。
这可能是由于可能会改变的intrinsicContentSize。
我试过了,但没有改变
- (NSSize)intrinsicContentSize
{
return NSMakeSize(NSViewNoInstrinsicMetric,NSViewNoInstrinsicMetric);
}
TableView大小样式设置为自定义宽度固定行高度。
TexField的约束是
N:| -20- [myTextField将(14)]
H:| -20- [myTextField将(50)]
我也试图不打电话给超级
invalidateIntrinsicContentSize
and
invalidateIntrinsicContentSizeForCell:(NSCell *)cell
并尝试手动将setNeedsLayout设置为NO
- (void) setObjectValue:(id)objectValue
{
[super setObjectValue:objectValue];
[self setNeedsLayout:NO];
[self setNeedsUpdateConstraints:NO];
}
tableView仍在重绘...
我该怎么做才能避免这种情况?
答案 0 :(得分:0)
我正在使用Quartz Debug" flash screen updates"能够看到正在重绘的屏幕部分,整个tableView都在闪烁。
在覆盖tableview和textfield的drawRect之后,我看到脏的rect和Quartz闪烁的Rect不一样。 TableView不完全重绘。