gpt4 book ai didi

cocoa - 如何禁用 NSTextView 的自动换行?

转载 作者:行者123 更新时间:2023-12-03 16:02:12 27 4
gpt4 key购买 nike

NSTextView 默认进行自动换行。我怎样才能禁用这个功能?我正在制作一个 JSON 代码查看器,因此我必须禁用它。

最佳答案

首先,本文档解释了原因和方式 -- https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/TextStorageLayer/Tasks/TrackingSize.html#//apple_ref/doc/uid/20000927-CJBBIAAF

我从以下位置得到了解决方案:http://lists.apple.com/archives/cocoa-dev/2008/May/msg02396.html

您必须将 NSTextView 的最大宽度设置为非常大的数字才能使其正常工作。 (只需复制最大高度)并启用 NSScrollView 的水平滚动,它是 NSTextView 的 super View 。请参阅这些图片:

http://www.flickr.com/photos/47601728@N06/4759470529/

alt text

http://www.flickr.com/photos/47601728@N06/4759470533/

alt text

更新

我发现我的旧示例代码不足以使其完全正常工作。 (因为SDK版本?)还这是我的完整源代码片段,它在 OSX 10.8 SDK 中禁用自动换行。

[self setMaxSize:CGSizeMake(FLT_MAX, FLT_MAX)];    
[self setHorizontallyResizable:YES];
[[self textContainer] setWidthTracksTextView:NO];
[[self textContainer] setContainerSize:CGSizeMake(FLT_MAX, FLT_MAX)];

更新2

现在Apple is providing an official guide正确创建NSTextView。我希望这会有所帮助。

更新3

我发布了example project on Github 。具体实现见此页:https://github.com/Eonil/CocoaProgrammaticHowtoCollection/blob/master/ComponentUsages/TextView/ExampleApplicationController.swift?ts=4

这是示例项目的代码片段。

if wordWrap {
/// Matching width is also important here.
let sz = scrollView.contentSize
textView.frame = CGRect(x: 0, y: 0, width: sz.width, height: 0)
textView.textContainer?.containerSize = CGSize(width: sz.width, height: CGFloat.greatestFiniteMagnitude)
textView.textContainer?.widthTracksTextView = true
}
else {
textView.textContainer?.widthTracksTextView = false
textView.textContainer?.containerSize = CGSize(width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude)
}

关于cocoa - 如何禁用 NSTextView 的自动换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3174140/

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