質問: UITextViewでユーザーが文字を入力し、色変更ボタンを押すと、次の入力文字から色変更が適用される仕組みにしたいです。(今までのテキストは今までの属性を保ったまま) しかし、どうしても全てのテキストに属性が適応されてしまったりうまくいきません。 解決法を教えていただけるとありがたいです。 流れ例 1. ユーザー入力 "あい" 色: 黒 2. ボタンタップ 色変更:赤 3. ユーザー入力 "うえお" 色: 赤 4. "あい(色: 黒)うえお(色: 赤) 環境: Xcode 6.4 ターゲット: iOS 7.0以上
回答: 入力中のテキストの属性を変更したい場合は`UITextView`の`typingAttributes`プロパティを変更します。 例えば、ボタンを押したところから赤い色に変更する場合は下記のように`typingAttributes`に`NSForegroundColorAttributeName`と`[UIColor redColor]`のペアを設定します。 ``` - (IBAction)changeColor:(id)sender { self.textView.typingAttributes = @{NSForegroundColorAttributeName: [UIColor redColor]}; } ```