我正在为第三方PDF库编写PDFViewer。我有一个NSScrollView的子类和NSView的子类。问题是当我调整窗口大小时,NSScrollView将向上和向下滚动。
这是相关代码:
每当调整窗口大小时,我的NSScrollView子类都会收到以下消息:
-(void)handleFrameChange:(NSNotification*)notification {
id * docView = [self documentView];
[docView windowResized];
}
在我的docView中,NSView的子类,包含绘制pdf的代码
- (void)windowResized;
{
NSSize size = [[self superview] bounds].size;
int width = (int) size.width;
int height = (int) size.height;
_pdfView->OnSize(width, height);
double w = _pdfView->GetCanvasWidth();
double h = _pdfView->GetCanvasHeight();
[self setFrameSize:NSMakeSize(w, h)];
//allocate buffer
_buf.resize(width * height * 4, NULL);
[self setNeedsDisplay:YES];
}