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
ちなみに
これは編集「後」に呼び出されるメソッドなので、編集「中」とかだとまた別のメソッドがあります。