如何在不修改界面构建器上设置的属性的情况下以编程方式更改 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"。
我正在使用以下代码仅编辑文本,但它不起作用:
- (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"。