2014-10-22 40 views
-1

我是iOS Development的新手。我無法讓我的字符串變爲BOLD。試圖將動態NSString文本轉換爲粗體文本

在此先感謝! 這裏是我的代碼

- (void)viewDidLoad { 
[super viewDidLoad]; 

NSString *sentence = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%@%@%@%@", self.name, self.adjective, self.noun, self.verb]]; 

NSMutableAttributedString *finalSentence = [[NSMutableAttributedString alloc] initWithString:sentence]; 

NSRange nameRange = NSMakeRange(0, self.name.length); 
NSRange adjectiveRange = NSMakeRange(self.name.length, self.adjective.length); 
NSRange nounRange = NSMakeRange((self.adjective.length + self.name.length), self.noun.length); 
NSRange verbRange = NSMakeRange((self.adjective.length + self.name.length + self.noun.length), self.verb.length); 

[finalSentence beginEditing]; 

[finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldMT" size:17.0] range:nameRange]; 
[finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldMT" size:17.0] range:adjectiveRange]; 
[finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0] range:nounRange]; 
[finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0] range:verbRange]; 

[finalSentence endEditing]; 

NSString *completeSentence = [finalSentence string]; 

self.resultTextView.text = completeSentence; 

}

回答

0

這不是偶然的,有一個單獨的NSAttributedString類。使用屬性字符串的string屬性檢索的completeSentence是普通的NSString,不包含格式信息(因爲它不能)。

您必須將屬性字符串對象本身分配給文本視圖的attributedText屬性。

0

您正在將屬性文本的純文本版本([finalSentence string])分配給UITextView的純文本屬性。

您應該直接設置歸因文字的UITextViewattributedText屬性 -

self.resultTextView.attributedText=finalSentence 
0

只需撥打

self.resultTextView.attributedText = finalSentence; 

下面是代碼,您需要

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    NSString *sentence = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%@%@%@%@", self.name, self.adjective, self.noun, self.verb]]; 

    NSMutableAttributedString *finalSentence = [[NSMutableAttributedString alloc] initWithString:sentence]; 

    NSRange nameRange = NSMakeRange(0, self.name.length); 
    NSRange adjectiveRange = NSMakeRange(self.name.length, self.adjective.length); 
    NSRange nounRange = NSMakeRange((self.adjective.length + self.name.length), self.noun.length); 
    NSRange verbRange = NSMakeRange((self.adjective.length + self.name.length + self.noun.length), self.verb.length); 

    [finalSentence beginEditing]; 

    [finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldMT" size:17.0] range:nameRange]; 
    [finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldMT" size:17.0] range:adjectiveRange]; 
    [finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0] range:nounRange]; 
    [finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0] range:verbRange]; 

    [finalSentence endEditing]; 
    self.resultTextView.attributedText = finalSentence; 
}