Sno*_*man 3 iphone objective-c nsattributedstring ios ios6
嗯,这似乎很愚蠢,它无法完成 - 您可以设置一个预定义的属性字符串,以显示在带有格式的文本视图上,但您无法设置要应用于实时键入的常规格式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;
Run Code Online (Sandbox Code Playgroud)
然后格式化显示,当我用键盘编辑文本时,格式仍然存在.
但是,如果我想从空白开始UITextView并将格式应用于用户将在视图中键入的任何内容,该怎么办?
我试过设置string = @""或string = @" ",但这些都没有保留格式.是否真的没有办法将格式应用于用户输入?具有属性字符串属性的UITextView的重点是什么?
根据文档,将完全擦除的text属性设置UITextView为由属性字符串完成的任何格式化.因此无论解决方案是什么,它都不必直接设置textView.text属性,而只是调整attributedText属性.
如果我正确地理解了这个问题,那就是它的typingAttributes属性UITextView.
也就是说,你想做的事情如下:
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.minimumLineHeight = 50.f;
mainTextView.typingAttributes = [NSDictionary dictionaryWithObject:paragraphStyle forKey:NSParagraphStyleAttributeName];
Run Code Online (Sandbox Code Playgroud)