我有一个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