UITextViewの実装でいろいろ試してみたのでのでメモ
キーボード表示
遷移時にbecomeFirstResponder/textViewShouldEndEditing を使用すればキーボード編集開始/終了でデリゲートが呼ばれるはずなのに呼ばれない。。。
いろいろ試してみたら、addSubviewした後にbecomeFirstResponderすることでキーボードが表示された。
こんな感じ。
CGRect rect = CGRectMake(0, 0, 250, 50); UITextView* textView UITextViewalloc] initWithFrame:rect]; textView.delegate = self; [hogeViewController.view addSubview:textView]; [textView becomeFirstResponder]; // キーボードを表示
続いてデリゲートメソッドはこんな感じ。戻り値をNOにすると呼ばれなくなるので注意。
- (BOOL) textViewShouldBeginEditing: (UITextView*) textView { // 編集開始時の処理 return YES; } -(BOOL)textViewShouldEndEditing:(UITextView *)text { // 編集終了時の処理 return YES; }
テキストエリアを枠線&角丸にする
デフォルトのテキストエリアだとかなり悲しい感じなので枠線を付けて角丸にしてみます。
// 枠線 textView.layer.borderWidth = 1; textView.layer.borderColor = [[UIColorblackColor] CGColor]; // 角丸 textView.layer.cornerRadius = 5;
layerを使用するために、QuartzCore.h のimportを忘れずに。
UITextViewってなんか扱いにくいなぁ。