Вид текста под клавиатурой.Он не будет прокручиваться, пока вы не введете достаточно текста, чтобы заполнить все строки, которые вы не видите, и даже тогда вы не сможете прокрутить все это в поле зрения.Чтобы сделать это правильно, вам необходимо прослушать уведомления об изменении размера клавиатуры и настроить размер текстового представления в соответствии с видимым пространством.После создания текстового представления подпишитесь на уведомления об изменении размера клавиатуры:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
, затем реализуйте эти методы:
- (void)keyboardDidShow:(NSNotification*)notification
{
NSValue* val = [[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey];
CGRect keyboardRect = [[self.view window] convertRect:[val CGRectValue] toView:self.textView];
CGRect rect = self.textView.frame;
rect.size.height = CGRectGetMinY(keyboardRect);
self.textView.frame = rect;
}
- (void)keyboardWillHide:(NSNotification *)notification
{
self.textView.frame = CGRectMake(0, 0, 320, 416);
}
Наконец, если объект, подписавшийся на уведомления (контроллер представленияЯ предполагаю, что) будет исчезать в любой момент жизни вашего приложения, вам также нужно отменить подписку, прежде чем оно будет аннулировано.(И даже если это не так, сделайте это в любом случае, потому что это хорошая практика.)
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
// ...
[super dealloc];
}