我想要获取键盘的大小,但不使用可用的键盘通知。原因是我在视图上有几个文本字段,并且我不需要为所有这些文本字段调整视图大小,就像我在几乎每个示例中看到的那样。我只需要为某些在编辑时将会被覆盖键盘的文本字段/视图调整视图大小。所以我使用
textFieldDidBeginEditing
和textFieldDidEndEditing
方法,因为我知道这里正在编辑哪个文本字段。另一个问题是,即使我订阅了键盘通知,UIKeyboardWillShowNotification
也会在textFieldDidBeginEditing
之后触发,所以我无法在第一次激活时获取键盘大小。我认为从键盘通知函数中没有提供实际文本字段或视图的信息。The following code works but I need the keyboard size:
- (void) textFieldDidBeginEditing:(UITextField *) textField {
if ([theControls containsObject: textField]) {
[UIView beginAnimations: @"szar" context: nil];
[UIView setAnimationDuration:0.3];
self.view.transform = CGAffineTransformTranslate(self.view.transform, 0, -216);
[UIView commitAnimations];
}
}
- (void) textFieldDidEndEditing:(UITextField *) textField {
if ([theControls containsObject: textField]) {
[UIView beginAnimations: @"szar" context: nil];
[UIView setAnimationDuration:0.3];
self.view.transform = CGAffineTransformTranslate(self.view.transform, 0, +216);
[UIView commitAnimations];
}
}