我正在尝试设置动画的视图向上移动时,键盘被隐藏和显示文本字段,我得到它的工作完全正常,但是当从一个文本字段移动焦点到另一个,它不起作用,因为键盘已经显示。检测对焦更改为UITextField
在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方法,它确定视图应该移动或不并相应地创建动画。但是,如果键盘已显示,并且用户单击需要视图向上移动的另一个文本字段,则该方法不会被调用。当键盘已经显示时,是否有任何方法可以检测焦点是否已经更改为另一个文本字段?如果有一种方法可以做到这一点,而不必将所有文本字段设置为委托,那将是非常棒的。
在此先感谢。
感谢您的答复。如果我这样做,有没有办法获得userInfo?因为在这些方法中,我从userInfo获得了UIKeyboardAnimationDurationUserInfoKey和UIKeyboardFrameEndUserInfoKey来设置动画,但我不确定在没有通知作为参数传入时我该如何做同样的事情? – Dennis
你需要什么样的信息? –
UIKeyboardAnimationDurationUserInfoKey,用于键盘动画持续时间(因此视图移动的动画可以匹配)以及UIKeyboardFrameEndUserInfoKey来获取键盘的高度。我不想对这些值进行硬编码。 – Dennis