UITextFieldViewModeWhileEditing更改我的TextField框架

时间:2015-12-03 17:02:13

标签: ios objective-c xcode uitextfield

我遇到了一个奇怪的问题。在这种情况下请帮助我。我有一个底部视图,其中包含像此图像一样的TextField

enter image description here 当我在文本字段中键入文本时,我希望我的底部视图在键盘上方移动,如下所示:

enter image description here

但是,输入一个字符后,我的底部视图将移回此前一个位置 enter image description here

每当我设置

时,我都发现了
self.textField.clearButtonMode = UITextFieldViewModeWhileEditing;

我的底部视图将回到之前的位置。 这是我的源代码链接:https://github.com/duythuc28/ProblemUITextField

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

首先,将观察者从UIKeyboardDidShowNotification更改为UIKeyboardWillShowNotification,并从UIKeyboardDidHideNotification更改为UIKeyboardWillHideNotification。第二:不要改变观点的框架。你有底部视图的约束到底部(等于0);为此约束创建出口,并在方法keyboardWillShow中将其设置为等于键盘高度,并将keyboardWillHide设置为0。

答案 1 :(得分:1)

您正在使用Autolayout,因此您无法为视图设置框架。它应该重置约束。

或者您可以使用IQKeyboardManager等第三方来解决您的键盘事件而无需担心。 IQKeyboardManager可以在ObjectiveC和Swift中使用。它还可以处理键盘上的建议外观(我在您的代码中已经意识到尚未处理)以下是链接:https://github.com/hackiftekhar/IQKeyboardManager