iphone – 在iOS 6中使用格式化键入UITextView

好吧,这似乎很愚蠢,它无法完成 – 你可以设置一个预定义的属性字符串显示在带格式的文本视图上,但你不能设置一般格式应用于UITextView上的实时输入.

例如,如果我在文本视图中输入任何内容之前执行此操作:

NSString *string = @"Hello world";
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.minimumLineHeight = 50.f;
NSMutableAttributedString *aStr = [[NSMutableAttributedString alloc] initWithString:string];
[aStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0,[string length])];
mainTextView.attributedText = aStr;

然后格式化显示,当我用键盘编辑文本时,格式仍然存在.

但是,如果我想从空白的UITextView开始并将格式应用于用户将在视图中键入的任何内容,该怎么办?

我尝试设置string = @“”或string = @“”,但这些都没有保留格式.是否真的没有办法将格式应用于用户输入?具有属性字符串属性的UITextView的重点是什么?

根据文档,设置UITextView的text属性完全消除了属性字符串所做的任何格式化.因此,无论解决方案是什么,它都不必直接设置textView.text属性,而只需使用attributedText属性进行调整.

最佳答案
如果我正确理解了这个问题,那就是UITextView的typingAttributes属性.

也就是说,你想做的事情如下:

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.minimumLineHeight = 50.f;
mainTextView.typingAttributes = [NSDictionary dictionaryWithObject:paragraphStyle forKey:NSParagraphStyleAttributeName];

转载注明原文:iphone – 在iOS 6中使用格式化键入UITextView - 代码日志