我有一个绑定到String的NSTextView。 NSTextView的isRichText设置为false。 文本可由用户编辑。
我想动态更新字体和行高。 随时可以使用textView.font设置字体。
对于绑定之前的行高,我似乎只能设置段落样式。之后,相同的代码对文本布局没有影响。
我正在使用以下代码:
let paragraphStyle = NSParagraphStyle.default.mutableCopy() as! NSMutableParagraphStyle
paragraphStyle.lineHeightMultiple = style.lineHeightMultiple
editableText.defaultParagraphStyle = paragraphStyle
有人可以帮我解决我做错的事情吗? 谢谢。
答案 0 :(得分:0)
借助@Willeke和this question,我对此有了解决方案。如建议的那样,我必须为此去文本存储,并在整个文本范围内设置属性。但是,这确实感觉不对,因为我将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)