摆脱的UITextField到的UITextView当按下返回(Move From UITextFi

2019-10-20 02:35发布

我在我的应用程序的几个文本视图。 所有,但一个是的UITextField,另一个是一个UITextView,坐落在别人的中间。 这是由于这部分需要用户更多的空间以键入并看到所有他们正在打字的。 我有它设置,这样,当用户按下旁边的键盘上,它进入下一个字段,使用下面的代码:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    if (textField == firstName) {
        [firstName resignFirstResponder];
        [lastName becomeFirstResponder];
    } else if (textField == lastName) {
        [lastName resignFirstResponder];
        [theRequest becomeFirstResponder];
    }
    else if (textField == theRequest) {
        [theRequest resignFirstResponder];
        [theDetails becomeFirstResponder];
    }
    else if (textField == theDetails) {
        [theDetails resignFirstResponder];
        [textdate becomeFirstResponder];
    }
    else if (textField == textdate) {
        [textdate resignFirstResponder];
        [location becomeFirstResponder];
    }
    else if (textField == location) {
        [location resignFirstResponder];

    }
    return YES;
}

直到我到了UITextView中一切顺利。 当我点击下一步在那里,它只是推光标下移一行。 我怎样才能得到它的回应简单地去到下一个字段?

此外,在位置单击下一步时,它可以追溯到名字。 怎么会是这样设置只是关闭键盘?

Answer 1:

您可以尝试两种方法:

1)使用功能

-(BOOL)textViewShouldReturn:(UITextView *)textView

实现所需的行为。

2)阅读:

如何解雇键盘的UITextView与返回键?

并适应这些解决方案您neeeds。



Answer 2:

我喜欢当我有多个文本框做一件事,就是用的不是检查一个接一个的标签。 首先,在interface builder / storyboard ,设置tag每个属性UITextField升序排列,(这是更好,如果你从1开始)。 不是,你textFieldShouldReturn:减少了这样的事情。

- (BOOL) textFieldShouldReturn:(UITextField *)textField
{
    UIView * nextView = [self.scrollView viewWithTag:textField.tag + 1];
    if ([nextView respondsToSelector:@selector(becomeFirstResponder)])
        [nextView becomeFirstResponder];
    return NO;
}

和你有关从去到下一个区域问题UITextView ,我同意与谢尔盖的回答第二个选项



Answer 3:

我知道这是一个老的文章,但因为我设法得到我的回答,我想我分享。

- (BOOL) textFieldShouldReturn:(UITextField *)textField 
{
    [textView performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.1];

    return YES;
}

有人告诉我,与afterDelay:0.1这使得在设备,其中,使用模拟器我们可以使用一个区别afterDelay:0.0



文章来源: Move From UITextField to UITextView When Return Pressed