14188


UITextViewでユーザーが文字を入力し、色変更ボタンを押すと、次の入力文字から色変更が適用される仕組みにしたいです。（今までのテキストは今までの属性を保ったまま）

しかし、どうしても全てのテキストに属性が適応されてしまったりうまくいきません。  
解決法を教えていただけるとありがたいです。

流れ例

  1. ユーザー入力 "あい" 色: 黒
  2. ボタンタップ 色変更:赤
  3. ユーザー入力 "うえお" 色: 赤
  4. "あい（色: 黒）うえお（色: 赤）

環境: Xcode 6.4  
ターゲット: iOS 7.0以上


CC BY-SA 3.0
2015-08-08T13:30:00.600
13183
2015-08-08T18:33:13.800
2015-08-08T18:33:13.800
5519
8320
question
ios objective-c
NSTextStorageとUITextVIewを使ってWordのような機能を導入したい


入力中のテキストの属性を変更したい場合は`UITextView`の`typingAttributes`プロパティを変更します。  
例えば、ボタンを押したところから赤い色に変更する場合は下記のように`typingAttributes`に`NSForegroundColorAttributeName`と`[UIColor
redColor]`のペアを設定します。

[code]

    - (IBAction)changeColor:(id)sender {
        self.textView.typingAttributes = @{NSForegroundColorAttributeName: [UIColor redColor]};
    }
    
[/code]


CC BY-SA 3.0
2015-08-08T18:06:13.260
14188
2015-08-08T18:06:13.260
5519
13183
answer