首页 > 解决方案 > 将 NSTextView 设置为以编程方式或通过 xcode 由 char 包装?

问题描述

网上有几个解决方案,但它们要么已有 10 年历史,不再有效,要么是用目标 C 编写的(而且也非常过时)。一种解决方案涉及 AttributedText 并在每次更新内容时更改换行样式,对我而言,每隔几分钟就会有数百次调用。这肯定不是最好的方法。我必须在这里遗漏一些东西,必须有一种方法可以将 NSTextView 设置为永久由 char 包装。

我已经尝试过了,但它不起作用并继续按字换行:

consoleTextView.textContainer?.lineBreakMode = NSLineBreakMode.byCharWrapping

我也尝试过在 xcode 中使用属性检查器。我终于找到了它的选项,但单击它什么也没做,它只是继续在“换行”字段中说“空选择”:

在此处输入图像描述

标签: swiftxcodemacos

解决方案


您应该在段落样式上设置换行模式。这是使其工作的最小可能示例:

let textView = NSTextView(frame: CGRect(x: 0, y: 0, width: 100, height: 200))

let paragraphStyle = NSMutableParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
paragraphStyle.lineBreakMode = .byCharWrapping

textView.defaultParagraphStyle = paragraphStyle
textView.string = "12345 12345 12345"

view.addSubview(textView)

推荐阅读