キーボードがポップアップしたら、テキスト ビューのサイズを変更する必要があります。まず、キーボードの表示と非表示の通知用にコントローラーを登録する新しいメソッドを定義します。
- (void)registerForKeyboardNotifications
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillBeHidden:)
name:UIKeyboardWillHideNotification object:nil];
}
次に、メソッド[self registerForKeyBoardNotifications];
から呼び出しますviewDidLoad:
。
その後、コールバック メソッドを実装する必要があります。
ここでkeyboardWasShown:
は、キーボードの高さを取得し、その量を textView のフレームの高さから差し引きます (前述のように、テキスト ビューが画面全体に表示されるため、最終的な高さは前の高さからキーボードの高さを引いたものになります)。
- (void)keyboardWasShown:(NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
CGRect rect = self.textView.frame;
rect.size.height -= kbSize.height;
}
そしてこれがkeyboardWillBeHidden:
- (void)keyboardWillBeHidden:(NSNotification*)aNotification
{
CGRect rect = self.textView.frame;
rect.size.height = SCREEN_HEIGHT;
}