2012-11-20 36 views
0

我從JSON文件中引入一些數據,我想將字體更改爲courier,但是當我嘗試執行以下操作時,出現此錯誤:"Property 'font' not found on object NSString"。有沒有辦法解決?更改字體與目標C中的對象的字符串C

NSString *timePeriod = [diction objectForKey:@"Time Period"]; 

UIFont *changeFont = [UIFont fontWithName:@"Courier" size:12]; 
timePeriod.font = changeFont; 
+0

您可以嘗試NSAttributedString –

+0

對不起同樣的錯誤 – user1832095

回答

1

NSString只是存儲字符串,它沒有字體的知識。如果你想設置字體當你畫的字符串中使用的NSString了AppKit補充:

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSString_AppKitAdditions/Reference/Reference.html#//apple_ref/doc/uid/20000155

基本上,你要設置當你畫的字符串屏幕字體。

+0

有沒有一種方法來設置我的表,這個數據最終走出去 - 在故事板模式下的設定字體?這會讓我的生活變得更輕鬆。 – user1832095

+0

對不起,我不太瞭解故事板模式,但是如果您將字符串放在UILabel或UITextField中,則可以設置該UI元素的字體。在屏幕上繪製時,字符串將拾取字體。 – jfaller

1

字體是屬性字符串的一部分。

NSMutableAttributedString timeSringWithAttr = [[NSMutableAttributedString alloc] initWithString:timeString]; 
[timeStringWithAttr addAttribute:NSFontAttributeName 
          value:changeFont 
          range:NSRangeFromString(timeString)]; 
0

NSString類沒有字體屬性,也不應該這樣做,因爲每個String對象都是一個字符數組。
相反,使用UILabel或UITextView,取決於您的需要與文本,並設置他們的字體屬性。

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 50)]; 
label.text = @"YOUR_TEXT"; 
label.font = [UIFont fontWithName:@"Courier" size:12.0f]; 

而在慣例中,你不應該命名變量與動詞名稱,這些是功能。
像UIFont * changeFont ..