如何在不修改界面构建器上设置的属性的情况下以编程方式更改 UITextView 的 NSAttributedString?

How to programmatically change the NSAttributedString of a UITextView without modifying the attributes set on the interface builder?

我正在使用以下代码仅编辑文本,但它不起作用:

- (void)updateTextViewWithText:(NSString *)newText
{      
    NSDictionary *attributes = [self.textView.attributedText attributesAtIndex:0 effectiveRange:NULL];
    self.textView.attributedText = [[NSAttributedString alloc] initWithString:newText attributes:attributes];
}

它正在运行。问题是在界面生成器上,没有为 textView 选择 属性 "Selectable",所以这就是它为 attributedText 属性返回 nil 的原因。

当我尝试你的代码示例时它起作用了。听起来您的 textView IBOutlet 未连接或在 Interface Builder 中您必须将文本从 "Plain" 更改为 "Attributed"。