[英]Move UIButton above Keyboard when tapped on UITextField
我有3个文本字段和2个按钮。 当我点击文本字段时,出现键盘,并且由于键盘隐藏了2个按钮。 是否可以将按钮移至键盘上方,并且当键盘辞职时,按钮应返回其初始位置。
//Declare a delegate, assign your textField to the delegate and then
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
return YES;
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:nil];
[self.view endEditing:YES];
return YES;
}
- (void)keyboardDidShow:(NSNotification *)notification
{
// Assign new frame to your view
[self.view setFrame:CGRectMake(0,-110,320,460)]; //here taken -20 for example i.e. your view will be scrolled to -20. change its value according to your requirement.
}
-(void)keyboardDidHide:(NSNotification *)notification
{
[self.view setFrame:CGRectMake(0,0,320,460)];
}
编辑:-使用[UIScreen mainScreen]边界] .size为视图分配宽度和高度。
最好的方法是使用库,这里是链接https://github.com/michaeltyson/TPKeyboardAvoiding ,您需要做的就是在UIScrollView中使用所有文本字段和按钮,并在Storyboard中将scrollview类分配为“ TPKeyboardAvoidingScrollView” 。
视图控制器类中将零行代码来管理您的需求,并且无论您想在整个应用程序中的哪个位置执行此操作,您都可以类似地进行。
是的,您可以更新“查看框架/约束”,以便向用户显示按钮。
此外,您可以创建一个工具栏,其中将包含这些按钮。 当文本框成为焦点时,可以在键盘上方添加工具栏。
这将是更好的用户体验。
最好使用scrollview,或者改编以下代码以方便使用。
override func viewDidLoad() {
super.viewDidLoad()
let tapGesture = UITapGestureRecognizer(target: self, action: "tap:")
view.addGestureRecognizer(tapGesture)
self.txtUserEmail.delegate = self;
self.txtPassword.delegate = self;
}
func tap(gesture: UITapGestureRecognizer) {
self.txtUserEmail.resignFirstResponder()
self.txtPassword.resignFirstResponder()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.