2011-08-19 46 views
2

在我的我想我正在文本視圖中顯示一個文本。此外,我想改變該文本中的一些句子的顏色。當我使用下面的代碼我獲取錯誤NSForegroundColorAttributeName未聲明,我也嘗試使用kCTForegroundColorAttributeNamevalue,但也顯示未聲明的錯誤。如何消除此錯誤。可以幫助我任何一個請。在iPhone中使用未聲明的NSForegroundColorAttributeName錯誤

enter code here 


NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:@"Paint a picture together, alternating every minute (use a timer to keep track)"]; 
[string addAttribute:kCTForegroundColorAttributeNamevalue:[UIColor redColor] range:NSMakeRange(0,8)]; 
[string addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(8,10)]; 
[string addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(10,5)]; 
+1

你必須'#import'的CoreText框架。此外,這些值需要'CGColor',而不是'UIColor'。 –

+0

@ishhh:你爲什麼不接受一些你問過的問題的答案? – Akshay

+1

該框架針對的是不適用於iOS的MAC OS。所以請給iOS回答。 –

回答

0

您是否導入了AppKit框架?另外,在頭文件中包含NSAttributedString.h

+0

Thamks.i找不到APPKit框架。添加NSAttributedString.h後,它沒有顯示這樣的文件或目錄。 – ishhhh

+0

除非包含框架,否則錯誤不會消失。請參閱文檔 - http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/_index.html。 – Akshay

+0

這個問題有iphone標籤。 AppKit框架不是iOS的一部分。 –

0

在iOS上的皮塔... 這裏是我想提出一個白色並將其應用到一系列

首先

#import <Foundation/NSAttributedString.h> 

然後

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 

CGFloat components[4] = {1.0f, 1.0f, 1.0f, 1.0f}; 
CGColorRef whiteColor = CGColorCreate(colorSpace, components); 

CGColorSpaceRelease(colorSpace); 

[mutableAttributedString addAttribute:(NSString*)kCTForegroundColorAttributeName value:(__bridge id)whiteColor range:titleRange]; 

CGColorRelease(whiteColor); 

我碰巧要使用ARC,所以如果必須,請取出__bridge。

0

您需要導入CoreText/CoreText.h才能獲得kCTForegroundColorAttributeName的聲明。

該值必須是CGColor而不是UIColor

有鑄造少做這種方式:

CFAttributedStringSetAttribute((__bridge void*)string, CFRangeMake(0, 8), 
    kCTForegroundColorAttributeName, [UIColor redColor].CGColor);