我有一個UITextView
用戶輸入數據。我有一個格式欄,下面有 粗體,斜體,下劃線和其他選項,如對齊方式等 經過大量的搜索和測試後,我才知道NSString
不支持這種粗體,斜體樣式而應該使用NSAttributedString
我使用NSAttributedString
我無法使所選文本同時爲粗體和斜體。使用UITextView的文本格式化
我的代碼是這樣的
NSMutableAttributedString *textViewText = [[NSMutableAttributedString alloc]initWithAttributedString:textView.attributedText];
NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:text];
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
if(textBoldBtn){
UIFont *boldFont = [UIFont boldSystemFontOfSize:textView.font.pointSize];
NSDictionary *boldAttr = [NSDictionary dictionaryWithObject:boldFont forKey:NSFontAttributeName];
[dict addEntriesFromDictionary:boldAttr];
}
if(textItalicBtn){
UIFont *italicFont = [UIFont italicSystemFontOfSize:textView.font.pointSize];
NSDictionary *italicAttr = [NSDictionary dictionaryWithObject:italicFont forKey:NSFontAttributeName];
[dict addEntriesFromDictionary:italicAttr];
}
attributedText = [[NSMutableAttributedString alloc] initWithString:text attributes:dict];
[textViewText appendAttributedString:attributedText];
textView.attributedText = textViewText;
return true;
}
使用這種技術時,按下兩個按鈕,只需要最後的字體在字典。
我已經通過堆棧溢出的鏈接,他們使用fontDescription的Label來使文本都斜體和粗體,但請注意我不想使用任何標籤。我正在使用UITextView
。我也經歷了 [textView setAllowsEditingTextAttributes:YES];
但我想要我自己的功能。我也看到了幾個EGOTextView和文本編輯對於iOS,但我嚴格希望爲iPad。我只想使用UITextView
。
請告訴我們是否有任何方法使用屬性字符串來使文本同時以斜體粗體和下劃線或任何方式來定製textView個人EditingTextAttributes功能的功能。
在此先感謝。
*應用程序必須上傳到應用程序商店,因此不需要任何私人框架,因爲它們會導致應用程序拒絕。
是的,我知道我可以使用(textItalicBtn && textBoldBtn)的條件,但爲我創造的將花費我在我的代碼使用大量的if和else語句的編輯器以及許多其他選項。我正在尋找一些消息傳遞給textView,我可以在同一時間使它變得粗體和斜體,但是這麼長時間以來我終於認爲這是不可能的。我必須像BoldItalic和ifElse語句一樣使用英語。非常感謝您的迴應和幫助。我很感激。 – Sahar 2014-09-21 06:44:01