繁体   English   中英

在UITextField上点击时,将UIButton移到键盘上方

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM