我想在用户打字时取消键盘的"返回"功能,这样就没有新行了,所以我希望"返回"键的功能是"完成",这样就可以隐藏键盘.

我使用的是可编辑的UITextView,因此用户可以键入他们的帖子,并将其发布到主时间线,但由于我有固定的单元格,我不希望用户能够按"返回",他们的帖子将超出时间线的范围.

我发现它适用于UITextField,但不适用于UITextView:

func textFieldShouldReturn(textField: UITextField!) -> Bool {
    textField.resignFirstResponder()  //if desired
    return true
}

所以我只是想知道是否有办法在UITextView中实现这一点,或者至少在按下return键时能够隐藏键盘,而不是创建新行.

推荐答案

您可以设置文本字段的返回键类型:

textField.returnKeyType = UIReturnKeyType.done

Update

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    if (text == "\n") {
        textView.resignFirstResponder()
    }
    return true
}

Swift相关问答推荐

什么是Swift Concurrency中任务组的正常退出

SwiftData查询按日期排序的项的属性数组

音频播放器无法播放URL音频(操作系统状态错误2003334207.)

通过SwiftUI中的列表 Select 从字典中检索值

如何偏移HStack中的视图,但仍然约束框架以与偏移匹配?

expose 不透明的底层类型

使用序列初始化字符串的时间复杂度是多少?

DispatchQueue.main.asyncAfter 等同于 Swift 中的 struct 化并发?

确定路径是否相交的有效方法

String(validatingUTF8:) 和 String(utf8String:) 之间有区别吗?

SwiftUI 分段 Select 器的问题

SwiftUI:异步网络请求后@State 值不更新

在 RealityKit 中创建转场

不使用 ViewController 时如何显示推送通知的alert 对话框

Xcode 13.3 将函数调用更改为属性访问

SwiftUI - 呈现工作表后导航栏按钮不可点击

playground 导入:没有这样的模块Foo

Swift if 语句 - 多个条件用逗号分隔?

更改在变量的 willSet 块中设置的值

iOS 视图可见性消失了