【发布时间】:2013-11-04 03:42:15
【问题描述】:
我正在使用以下代码在 NSTextView 中使选定的文本变为粗体
[self.textView.attributedString addAttribute:NSFontAttributeName value:[NSFont boldSystemFontOfSize:12] range:self.textView.selectedRange];
self.textView 是 NSTextView 的出口。 Xcode 发出警告,addAttribute 可能无法正常工作,因为该属性的类型为 NSAttributedString 而不是 NSMutableAttributedString。代码可以工作,但这样做是错误的吗?如果是这样,正确的方法是什么?
更新:
我找到了另一种方法:
NSMutableAttributedString *textFieldText = [self.textView.attributedString mutableCopy];
[textFieldText addAttribute:NSFontAttributeName value:[NSFont boldSystemFontOfSize:12] range:self.textView.selectedRange];
[self.textView.textStorage setAttributedString:textFieldText];
由于这两种方法都有效,我想知道哪种方法更好。
【问题讨论】:
-
我认为您的更新是可行的方法。
-
我认为您的解决方案是唯一正确的方法。不要忘记释放/自动释放复制的对象,复制增加保留计数器。(如果你不使用 ARC)
-
没有人知道我在哪里可以找到这些的权威答案。我试着在 developer.apple.com 上四处寻找...
标签: cocoa nstextview foundation