我有一个绑定到字符串的NSTextView。NSTextView的isRichText设置为false。文本可由用户编辑。
我想动态更新字体和线条。使用textView.font设置字体可以在任何时候使用。
我似乎只能设置段落样式,因为装订到位之前的行高。之后,相同的代码对文本布局没有影响。
我正在使用以下代码:
let paragraphStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
paragraphStyle.lineHeightMultiple = style.lineHeightMultiple
editableText.defaultParagraphStyle = paragraphStyle
有人能帮我做错事吗?非常感谢。
感谢@Willeke和这个问题,我找到了解决方案。正如建议的那样,我必须为此访问文本存储,并在全文范围内设置属性。不过,这确实感觉不对,因为我将NSTextView设置为纯文本,因此我认为应该大规模应用一种样式。
如果按以下方式设置属性,则会删除textView.font设置,因此必须以相同的方式应用所有属性。
let paragraphStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
paragraphStyle.lineHeightMultiple = style.lineHeightMultiple
let storageRange = NSMakeRange(0, editableText.textStorage!.string.count)
editableText.textStorage!.setAttributes(
[NSAttributedStringKey.paragraphStyle : paragraphStyle,
NSAttributedStringKey.font : style.noteFont],
range: storageRange)