我以编程方式创建NSTextView作为窗口的contentView。当我使用以下代码创建WebView时,它会显示滚动条和调整大小的缩略图,并且可以完美地调整窗口大小。
当我注释掉WebView并尝试使用NSTextView作为contentView时,在调整窗口大小时它不会“工作”:使用拇指调整窗口大小会导致文本视图的内容无法正确重绘,还绘制了窗口的标题,并且重新调整大拇指也没有重新绘制。
-(void)applicationDidFinishLaunching:(NSNotification*)aNotification{
NSTextView* view = [[NSTextView alloc] initWithFrame:[window frame]];
// WebView* view = [[WebView alloc] initWithFrame:[window frame]];
[window setContentView:view];
[window makeFirstResponder:view];
[window makeKeyAndOrderFront:view];
}
编辑:工作代码。创建一个NSScrollView作为windows new contentView,并添加一个NSTextView作为其文档。
-(void)applicationDidFinishLaunching:(NSNotification*)aNotification{
NSScrollView* scrollView = [[NSScrollView alloc] initWithFrame:[window frame]];
NSTextView* view = [[NSTextView alloc] initWithFrame:[scrollView bounds]];
[window setContentView:scrollView];
[scrollView setDocumentView:view];
[scrollView setHasVerticalScroller:YES];
[scrollView setHasHorizontalScroller:YES];
[window makeFirstResponder:view];
[window makeKeyAndOrderFront:view];
}
答案 0 :(得分:3)
Web视图制作并管理自己的滚动条,这是一种特殊情况,而不是常态。 NSTextView没有。这只是文本视图。这是常态 - 只有在Interface Builder的帮助下,可滚动视图才会预先包装在NSScrollView中。在代码中,您还必须创建NSScrollView,然后将视图包装在其中。在这种情况下,滚动视图将是您的顶级视图。