gpt4 book ai didi

objective-c - NSTextView 用作 contentView 时失败

转载 作者:行者123 更新时间:2023-12-03 17:36:26 25 4
gpt4 key购买 nike

我正在以编程方式创建一个 NSTextView 作为窗口的 contentView。当我使用以下代码创建 WebView 时,它会显示滚动条、调整大小拇指以及调整窗口大小,效果完美。

当我注释掉 WebView 并尝试使用 NSTextView 作为 contentView 时,调整窗口大小时它不起作用:使用拇指调整窗口大小会导致 TextView 的内容无法正确重新绘制,它也会绘制窗口的标题,并且调整大小的拇指也不会重新绘制。

-(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 新的 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];
}

最佳答案

Web View 创建并管理自己的滚动条,这是一种特殊情况而不是常态。 NSTextView 则不然。这只是 TextView 。这是常态——可 ScrollView 只是为了方便 Interface Builder 才预先包装在 NSScrollView 中。在代码中,您还必须创建一个 NSScrollView,然后将 View 包装在其中。在这种情况下, ScrollView 将成为您的顶级 View 。

关于objective-c - NSTextView 用作 contentView 时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5002531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com