gpt4 book ai didi

iphone - textFieldDidEndEditing 在不需要时移动屏幕

转载 作者:太空狗 更新时间:2023-10-30 03:54:51 27 4
gpt4 key购买 nike

在我的应用程序中,我的 UITextFields 位于键盘顶部的下方,因此我必须向上移动我的 View ,以便在我编辑时可以在键盘上看到文本字段。为此,我使用 UITextFieldDelegate 方法 textFieldDidBeginEditing:。然后在方法 textFieldDidEndEditing: 中,我将 View 向下移动。

当我尝试在文本字段之间切换时出现问题。当我这样做时,委托(delegate)会调用方法 textFieldDidEndEditing: 然后立即调用 textFieldDidBeginEditing: 用于另一个文本字段,这会使 View 下降然后立即上升,所以它看起来像屏幕震动。这种效果有什么解决方法吗?

最佳答案

我刚刚遇到了完全相同的问题,这就是我找到的解决方案。

当你的 textField 的键盘被取消时,设置一个单独的方法来处理,并将你的 self.view.center 重新对齐放在那里。这样,您可以确保您的 textFieldDidEndEditing 方法保持独立。

如果我没有正确解释自己的话,这里有一个例子。请注意,当用户点击 textField 时,我会在导航栏中放置一个 DONE 按钮(因为它是一个数字键盘),尽管您可以将此方法链接到普通键盘上的 DONE 按钮:

- (void)textFieldDidBeginEditing:(UITextField *)textField {
UIBarButtonItem *hideKeyboardButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(resignResponder:)];
[self.navigationItem setRightBarButtonItem:hideKeyboardButton animated:YES];
}

- (void)textFieldDidEndEditing:(UITextField *)textField {

//Nothing needs to go here anymore

}

- (void)resignResponder:(id)sender {
[textField resignFirstResponder];
//Use core animation instead of the simple action below in order to reduce 'snapback'
self.view.center = CGRectMake(0, 0, 320, 480);
}

关于iphone - textFieldDidEndEditing 在不需要时移动屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11300946/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com