2012-04-25 20 views
2

我有下面的代碼在我的應用程序顯示NSMutableAttributedString

NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:self.myDisplayTxt]; 
     [string addAttribute:(NSString*)kCTForegroundColorAttributeName 
        value:(id)[[UIColor redColor] CGColor] 
        range:NSMakeRange(0,5)]; 

    self.myTextView.text = string; 

當分配NSMutableAttributedString到的UITextView我得到以下錯誤:

Incompatible objective c types struct NSMutableAttributedString expected struct nsstring

所以,請讓我知道,我怎麼能顯示UITextView中的NSMutableAttributedString。

回答

0

您不能,UITextView不支持歸因字符串。如果你真的只想使用屬性字符串來設置前景色(如你的例子),你可以通過設置文本視圖的textColor屬性來達到同樣的效果。

+0

其實我想強調的文本,可以說做到 – user198725878 2012-04-25 10:27:19

+0

有了'UITextView',沒有。正如@Ondra指出的那樣,「UITextView」有幾個第三方替代方案支持豐富的文本(屬性字符串),但從我的經驗來看,它們往往是錯誤的和不完整的 - ymmv。 – omz 2012-04-25 12:05:33

+4

從iOS 6開始,'UITextView'支持'NSAttributedStrings'。 – 2012-11-01 19:10:50

2

你可以嘗試使用一些庫來做到這一點。正如omz寫道,UITextView並不不幸地支持NSAttributedString

也許這可以幫助你:https://github.com/enormego/EGOTextView

他們說,這個庫中的以下內容:

UITextView replacement with additional support for NSAttributedString.

UPDATE:根據您的澄清對OMZ的答案的評論,你可以看看這裏: Underline text inside uitextview

更新2:iOS 6您可以使用開箱即用的NSAttributedString。例如,如下所示:

UIColor *_red=[UIColor redColor]; 
UIFont *font=[UIFont fontWithName:@"Helvetica-Bold" size:72.0f]; 
[attString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, _stringLength)]; 
[attString addAttribute:NSStrokeColorAttributeName value:_red range:NSMakeRange(0, _stringLength)]; 
[attString addAttribute:NSStrokeWidthAttributeName value:[NSNumber numberWithFloat:-3.0] range:NSMakeRange(0, _stringLength)]; 
+0

這是過時的,UITextView現在支持NSAttributedString – 2013-04-19 19:03:18

+1

@Frank真的... downvote? :)只是因爲答案不再是最新的?那麼支持舊版本的iOS呢?仍然不可用? – 2013-04-20 14:32:02

相關問題