我有可绘制内容的NSScrollView。 滚动工作正常,直到我按下Cmd + Tab或以任何其他方式隐藏窗口。 当我第二次用scrollView打开窗口时,它不会在滚动时重绘内容。 所以documentView的drawRect函数不再起作用了。
设置内容视图(我需要在滚动时重绘它,因为self.documentView比窗口的宽度宽得多) [self.documentScroll setDocumentView:self.documentView];
在NSClipView中
- (void)drawRect:(NSRect)dirtyRect {
[self setCopiesOnScroll: NO];
[super drawRect:dirtyRect];
NSArray* ar = self.subviews;
NSView* docView = ar.firstObject;
BOOL b = docView.needsDisplay;
}
隐藏窗口并显示第二次后,docView.needsDisplay始终为NO。在应用程序的启动时,它总是在每个滚动事件中都是YES和drawRect方法调用documentView