UITextView の編集検知
テキストビューの編集に応じて何かやりたい場合ってありますよね。
例えば入力の有無によってツールバーのボタンを変更するとか。
そうすると、UITextView が編集されたことを知る必要があるわけですが、そんなときはUITextViewDelegate のtextViewDidChange: メソッドを利用します。
1.UITextViewDelegate プロトコルを追加
まず.hファイルにUITextViewDelegate プロトコルを追加。
MyViewController.h
#import <UIKit⁄UIKit.h> @interface MyViewController : UIViewController <UITextViewDelegate> ⁄⁄ 以下略
2.delegate を設定
次に.mファイルのViewDidLoad でdelegate を設定。
MyViewController.m
#import "MyViewController.h" @interface MyViewController () @end @implementation MyViewController - (void)viewDidLoad { [super viewDidLoad]; [self.myTextView setDelegate:self]; } ⁄⁄ 以下略
3.textViewDidChange: メソッドを実装
MyViewController.m
⁄⁄ 前略 - (void)textViewDidChange:(UITextView *)textView { ⁄⁄ ここにUITextView 編集後に行わせたい処理を書く } @end
ちなみに
これは編集「後」に呼び出されるメソッドなので、編集「中」とかだとまた別のメソッドがあります。