Cri*_*tiC 9 iphone objective-c uikeyboard ios4 ios-3.x
我的视图中有几个UITextField(每个都在UITableViewCell中).当从任何文本字段触发键盘时,我需要制作一些动画,主要是为了更改UITableView的框架.键盘隐藏时也必须如此.
我已完成动画,所以这不是问题.
现在,我使用NSNotificationCenter来捕获键盘的显示/隐藏:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide) name:UIKeyboardWillHideNotification object:nil];
问题是当键盘可见(使用文本字段)时我按下另一个文本字段.通常对于这个东西,键盘不会隐藏,但会保持可见.
它在iOS 4中运行良好,但问题在于3.1.3(这是我可以测试的版本 - 可能是3.2以下的任何版本).在3.2以上的版本中,将焦点从文本字段直接更改为另一个文本字段将触发UIKeyboardWillHideNotification和UIKeyboardWillShowNotification.
没有NSNotificationCenter,任何人都知道在键盘真正显示/隐藏时执行某些动画的方法吗?
或者如何在低于3.2的版本中克服此问题?
谢谢.
Mih*_*atu 12
您可以做的是将textfield的/ textview的委托设置为当前视图控制器并实现这两种方法
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    _keyboardWillHide = NO;
    return YES;
}
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
{
    _keyboardWillHide = NO;
    return YES;    
}
在您的方法中,通过UIKeyboardWillHideNotification通知触发后,您可以执行类似的操作
if (_keyboardWillHide) {
    // No other textfield/textview was selected so you can animate the tableView
    ...
}
_keyBoardWillHide = YES;
如果这对您有用,请告诉我.
| 归档时间: | 
 | 
| 查看次数: | 15414 次 | 
| 最近记录: |