设置NSTextView以编程方式还是通过xcode通过char包装?

时间:2019-07-11 08:12:49

标签: swift xcode macos

有两个在线解决方案,但是它们要么已经使用了10年,不再起作用,要么是用目标C编写的(而且也很过时)。一种解决方案涉及AttributedText,并且每次内容更新时都要更改换行样式,对我而言,每隔几分钟就会进行数百次呼叫。当然,这不是最好的方法。我必须在这里丢失一些东西,必须有一种方法可以将NSTextView设置为永久由char包装。

我已经尝试过了,但是它不起作用,并且继续被单词包裹:

consoleTextView.textContainer?.lineBreakMode = NSLineBreakMode.byCharWrapping

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

enter image description here

2 个答案:

答案 0 :(得分:1)

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

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)

答案 1 :(得分:0)

任何寻求Objective-C答案的人都会使用类似的东西:

NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;

myTextView.defaultParagraphStyle = paragraphStyle;