Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 通过编程方式或通过xcode将NSTextView设置为按字符换行?_Swift_Xcode_Macos - Fatal编程技术网

Swift 通过编程方式或通过xcode将NSTextView设置为按字符换行?

Swift 通过编程方式或通过xcode将NSTextView设置为按字符换行?,swift,xcode,macos,Swift,Xcode,Macos,网上有一些解决方案,但它们要么已经存在10年,不再有效,要么是用objective C编写的(而且也非常过时)。一个解决方案涉及AttributedText,并在每次内容更新时更改换行符样式,对我来说,每隔几分钟就会有数百次呼叫。这肯定不是最好的办法。我一定是遗漏了什么,一定有办法将NSTextView设置为永久按字符换行 我已经试过了,但它不起作用,继续用文字来概括: consoleTextView.textContainer?.lineBreakMode = NSLineBreakMode.

网上有一些解决方案,但它们要么已经存在10年,不再有效,要么是用objective C编写的(而且也非常过时)。一个解决方案涉及AttributedText,并在每次内容更新时更改换行符样式,对我来说,每隔几分钟就会有数百次呼叫。这肯定不是最好的办法。我一定是遗漏了什么,一定有办法将NSTextView设置为永久按字符换行

我已经试过了,但它不起作用,继续用文字来概括:

consoleTextView.textContainer?.lineBreakMode = NSLineBreakMode.byCharWrapping
我还尝试在xcode中使用属性检查器。我终于找到了它的选项,但单击它什么也不做,它只是在“换行”字段中继续显示“空选择”:


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

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)

任何寻求客观c答案的人都会使用类似的方法:

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

myTextView.defaultParagraphStyle = paragraphStyle;

谢谢你,这让我快发疯了