UITextFieldViewModeWhileEditing 更改我的 TextField 框架

UITextFieldViewModeWhileEditing change my TextField frame

我遇到了一个奇怪的问题。请帮我解决这个 case.I 有一个底部视图,其中包含一个像这张图片

的 TextField

当我在文本字段中键入文本时,我希望我的底部视图移动到键盘上方并且像这样:

但是,输入一个字符后,我的底视图将移回之前的位置

我发现每当我设置

self.textField.clearButtonMode = UITextFieldViewModeWhileEditing;

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

感谢您的帮助。

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

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

或者您可以使用 IQKeyboardManager 等第三方来无忧地处理您的键盘事件。 IQKeyboardManager 可以在 ObjectiveC 和 Swift 中使用。它还可以处理键盘上建议的外观(我在您尚未处理的代码中意识到这一点)这是 link:https://github.com/hackiftekhar/IQKeyboardManager