如何使UITextField在按下“Return”键时换行?

8 浏览
0 Comments

如何使UITextField在按下“Return”键时换行?

我有一个使用了自动大写、纠正等修饰符的UITextField。我还在键盘上方添加了一个自定义工具栏,其中包含一个“完成”按钮,用于关闭键盘。

然而,为了格式化文本,我需要用户能够输入“回车”。当按下“回车”键时,我有以下代码可以触发:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return NO;
}

然而,在这种情况下,回车键会关闭键盘。请问有人可以告诉我如何修改这段代码,以便在用户点击“回车”时向正在输入的文本中添加一个空行吗?

谢谢!

0
0 Comments

问题的原因是UITextField不支持多行文本输入,而是更适合单行文本输入。如果希望支持多行文本输入,应该使用UITextView。

解决方法是将UITextField替换为UITextView。UITextView是一个更适合多行文本输入的控件,可以满足需求。只需简单地将UITextField的实例替换为UITextView的实例即可。

代码示例:

let textView = UITextView(frame: CGRect(x: 0, y: 0, width: 200, height: 100))

textView.backgroundColor = UIColor.lightGray

textView.returnKeyType = .default

textView.delegate = self

self.view.addSubview(textView)

上述代码将创建一个UITextView,并设置其背景颜色为浅灰色。通过设置returnKeyType属性为.default,可以使键盘上的Return键正常工作。将UITextView的delegate设置为self,以便处理相关的文本输入事件。

以上就是解决此问题的方法,通过使用UITextView替代UITextField,可以实现多行文本输入,并使Return键正常工作。

0