2014-05-01 38 views
0

它似乎很明顯,但我還沒有找到答案: - (...如何獲得粗體字符串(不包括的NSMutableString)

有誰知道我們如何定義一個新的NSString並加粗字體(或斜體),我知道我們可以用Attributed來做,但問題是我知道我們需要NSMutableString,然後我不能將這個MutableString轉換成NSString(儘管後面在[NSString stringWithFormat ...]中使用它)一些主張在哪兒見過。

(我生成PDF,還沒有發現其他方式在文檔中有一個加粗的字符串)。

回答

1

NSString不代表任何樣式信息。如果只有NSString表示,則無法知道該字符串是否應以粗體,斜體,72點或漫畫Sans顯示。

此樣式信息(「屬性」)在NSAttributedString中表示。

NSString *myString = @"Hello world!"; 
NSAttributedString *myBoldString = [[NSAttributedString alloc] initWithString:myString 
                  attributes:@{ NSFontAttributeName: [UIFont boldSystemFontOfSize:72.0] }]; 

這創建了一個帶有樣式信息的字符串。例如,如果您想要在UILabel上顯示此字符串,則需要設置.attributedText屬性而不是.text

self.label.attributedText = myBoldString; 

從演示數據(字符串內容)(方式屬性)是在可可和可可觸摸一個共同主題的分離。

+0

哦,那很快,謝謝! 因此,如果我正確理解,因爲我從一個巨大的[NSString stringWithFormat:...]獲取我的PDF內容,將無法獲得格式化文本? 如果我想要大膽(歸屬)的文本,我必須找到另一種方法來生成PDF文件? 謝謝! Tricho – Trichophyton

+0

我不確定你用什麼代碼來生成PDF。如果它接受NSAttributedString這將是一種方法。 – wjl

+0

我正在使用Apple文檔中提到的那個。獲取文本:CFAttributedStringRef currentText = CFAttributedStringCreate(NULL,(CFStringRef)textView.text,NULL);如果(currentText)... 我認爲它應該有可能輸入我的字符串(而不是textView.text)和值後面加粗(而不是第三個NULL參數)。但是,如果我們有一個長文本,處理多個CFAttributedStringRefs(爲它們中的每一個設置與「當前文本」相同的屬性)是不是很繁瑣? – Trichophyton

相關問題