これができないのはばかげているようです。事前定義された属性付き文字列を書式設定付きのテキストビューに表示するように設定できますが、でのライブ入力に適用される一般的な書式設定を設定することはできません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のポイントは何ですか?
ドキュメントによると、のtext
プロパティを設定するとUITextView
、属性付きの文字列によって行われたすべてのフォーマットが完全に消去されます。したがって、解決策が何であれ、プロパティを直接設定textView.text
するのではなく、attributedText
プロパティを微調整するだけで済みます。