除非您滚动,否则NSTextView中的NSAttributedString不会显示

时间:2015-07-17 22:58:23

标签: macos nsattributedstring nstextview

我正在尝试在NSTextView中设置属性字符串,如果文本比文本视图高,则除非滚动文本框,否则文本根本不会显示。

关于NSTextView中的属性字符串的帖子不多,所以也许我只是做错了。以下是我设置文本的方式:

[[self.textView textStorage] appendAttributedString:attributedString];

2 个答案:

答案 0 :(得分:1)

您必须以编程方式告诉NSTextView它必须使新字符串可见:

NSUInteger length = [[self.textView string] length];
[self.textView scrollRangeToVisible:NSMakeRange(length,0)];

如果附加的字符串是“简单”字符串或属性字符串,这应该独立。

答案 1 :(得分:0)

在对文本存储进行一系列更改之前调用-beginEditing,然后再-endEditing。请参阅Text System Storage Layer Overview: Changing Text Storage