use*_*352 5 iphone objective-c uitextfield
在我的应用程序中,我的UITextField位于键盘顶部的下方,因此我必须向上移动视图,以便在编辑时键盘上可以看到文本字段.为了做到这一点,我使用了UITextFieldDelegate方法textFieldDidBeginEditing:.然后在方法textFieldDidEndEditing:中,我将视图向下移动.
当我尝试在文本字段之间切换时会出现问题.当我这样做时,委托调用方法textFieldDidEndEditing:然后立即调用textFieldDidBeginEditing:对于另一个文本字段,这使得视图向下然后立即向上,所以它看起来像屏幕颠簸.这种效果有解决方法吗?
我刚刚遇到了完全相同的问题,这就是我找到的解决方案。
设置一个单独的方法来处理 textField 的键盘已退出的情况,并将 self.view.center 重新对齐放在那里。这样,您可以确保您的 textFieldDidEndEditing 方法保持独立。
如果我没有正确解释自己的话,这是一个例子。请注意,当用户点击文本字段时,我在导航栏中放置了一个“完成”按钮(因为它是数字键盘),尽管您可以将此方法链接到普通键盘上的“完成”按钮:
- (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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
684 次 |
| 最近记录: |