我正在尝试将动画设置为在键盘隐藏和显示文本字段时向上移动,我让它工作得很好,但是当焦点从一个文本字段移动到另一个文本字段时,它不会' 工作,因为键盘已经显示。
在 viewDidLoad 中,我注册了以下内容:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
然后在 keyboardWillShow 和 keyboardWillHide 方法中,它确定 View 是否应该移动并相应地设置动画。但是,如果已经显示键盘并且用户单击另一个需要 View 向上移动的文本字段,则不会调用该方法。当键盘已经显示时,有什么方法可以检测焦点是否已更改为另一个文本字段?如果有一种无需将所有文本字段设置为委托(delegate)即可执行此操作的方法,那就太好了。
提前致谢。
最佳答案
使用 UITextField
委托(delegate)方法.. 它比键盘方法更适合您的情况.. 当 textField 获得焦点时 - (void)textFieldDidBeginEditing:(UITextField *)textField;
将被触发 .. 当它失去焦点时 - (void)textFieldDidEndEditing:(UITextField *)textField;
将被触发。
关于iphone - 检测 UITextField 的焦点变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10671698/