Я пытаюсь переместить форму, когда отображается клавиатура, мой подход - проверить, пересекается ли кадр клавиатуры и рамки текстового поля.Проверьте, скрывает ли клавиатура текстовое поле, когда оно отображается
- (void)keyboardDidShow:(NSNotification *)notification
{
// Get the size of the keyboard.
CGRect keyboardFrame = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];
//Test whether the current frame of the text field is hidden by the keyboard
if (!CGRectIsNull(CGRectIntersection(keyboardFrame,self.activeField.frame))) {
NSLog(@"Key board frame intersects with the text field frame");
}
}
В вышеуказанном коде CGRectIsNull
всегда возвращает null.
А заявления отладки вернуть мне эту информация о клавиатуре и активном текстовом поле выбирается в виде:
Клавиатура Размер = (ширина = 352, высота = 1024) клавиатура происхождения = (х = -352 , у = 0)
доска для ключей рамы = (-352,0,352,1024) Текстовое поле кадра = (200, 15, 300, 30)
Каждый текстовое поле имеет те же значения кадров, что означает, что-то не так. Итак, как я могу проверить, скрывает ли клавиатура текстовое поле, чтобы я перемещал свою форму вверх и вниз. Thanx.