UITextView成为第一响应者时添加新行

11 uitextfield uitextview ios

所以我有一个UITextField,它是页面打开时的第一个响应者(工作正常).然后我有一个UITextView,它成为用户按下返回时的第一个响应者,这就是我的问题所在.当按下返回的东西似乎与第一响应者一起正常工作,但UITextView添加一行并开始在第二行闪烁的光标..有没有人可以帮助我?提前致谢!

这是开关

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    [self.fieldDescription.textView becomeFirstResponder];

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

看看图标闪烁的位置?当第一个响应者改变时,这就是它开始的地方...... 在此输入图像描述

Dav*_*e G 15

很棒的问题和描述.我有同样的问题.

这个帖子没有答案为我解决了.有人在另一个帖子的评论中(由@AndreiRadulescu提供).@rmaddy在该线程上的回答解决了它.他的回答是:

解决这个问题的一个解决方案是当你实现textFieldShouldReturn:delegate方法时,一定要返回NO,而不是YES.通过返回NO,换行不会传递到文本字段.

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
// move to next field or whatever you need
[myTextView becomeFirstResponder];

return NO;
}
Run Code Online (Sandbox Code Playgroud)

在Swift中:

//Dismisses keyboard upon tapping the return key
func textFieldShouldReturn(textField: UITextField) -> Bool {
    txtTask.resignFirstResponder()
    return false
}
Run Code Online (Sandbox Code Playgroud)