Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITextFieldViewMode编辑时更改我的文本框_Ios_Objective C_Xcode_Uitextfield - Fatal编程技术网

Ios UITextFieldViewMode编辑时更改我的文本框

Ios UITextFieldViewMode编辑时更改我的文本框,ios,objective-c,xcode,uitextfield,Ios,Objective C,Xcode,Uitextfield,我有个奇怪的问题。在这种情况下,请帮助我。我有一个底部视图,其中包含一个文本字段,如图所示 在textfield中键入文本时,我希望底部视图移动到键盘上方,如下所示: 但是,在键入一个字符后,我的底部视图将移回上一个位置 我发现无论我什么时候 self.textField.clearButtonMode = UITextFieldViewModeWhileEditing; 我的底部视图将移回其以前的位置。 这是我的源代码链接: 感谢您的帮助。首先,将观察者从UIKeyboardDidSh

我有个奇怪的问题。在这种情况下,请帮助我。我有一个底部视图,其中包含一个文本字段,如图所示

在textfield中键入文本时,我希望底部视图移动到键盘上方,如下所示:

但是,在键入一个字符后,我的底部视图将移回上一个位置

我发现无论我什么时候

self.textField.clearButtonMode = UITextFieldViewModeWhileEditing;
我的底部视图将移回其以前的位置。 这是我的源代码链接:


感谢您的帮助。

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

您使用的是自动布局,因此无法为视图设置框架。它应该重置约束


或者,您可以使用第三方(如IQKeyboardManager)来处理键盘事件,无需担心。IQKeyboardManager可用于Objective和Swift。它还可以处理建议在键盘上的外观(我在您尚未处理的代码中意识到这一点),下面是链接:

不行,使用UIKeyboardWillShowNotification无法获得键盘大小。顺便说一下,我通过将约束设置为底部而不是设置框架来解决了这些问题。但我们必须使用UIKeyboardDidShowNotification来获取键盘的框架。非常感谢,实际上,您可以获得键盘大小:-(void)keyboard将显示:(NSNotification*)通知{NSValue*frameValue=[notification userInfo][UIKeyboardFrameEndUserInfoKey];NSTimeInterval animationDuration=[[notification userInfo][UIKeyboardAnimationDurationUserInfoKey]doubleValue];CGRect keyboardFrame=[self.view convertRect:[frameValue CGRectValue]fromView:nil];CGFloat height=keyboardFrame.size.height;//这里有键盘高度;执行其他操作[self.view layoutifneed];}