作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有 TextView 和文本字段的应用程序,用户可以在该 TextView 中输入问题并在字段中输入答案。我希望它在用户按下回车键时将 View 退出为第一响应者,并将该字段设为第一响应者,我尝试了下面的代码,但它似乎不起作用,我也不知道为什么
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
if text=="\n"{
questionTV.resignFirstResponder()
answerTF.becomeFirstResponder()
return false
}
return true
}
最佳答案
我试过下面的代码:
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
guard text == "\n" else { return true }
textView.resignFirstResponder()
textField.becomeFirstResponder()
return false
}
它按预期工作。
我想,原因可能在别的地方。您有更多详细信息要分享吗?
您是否设置了 TextView 的委托(delegate)?您是否在 shouldChangeTextIn
方法内的断点处停止?
更新:
在评论中很明显您遵守了错误的协议(protocol)。您需要符合 UITextViewDelegate
而不是 UITextFieldDelegate
。如果您需要它来处理文本字段,您可能希望保持 UITextFieldDelegate
一致性。
关于ios - 将 TextView 辞去为第一响应者并在按返回时将文本字段设为第一响应者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58761555/
由“CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", ES_MULTILINE.."创建的文本框需要\r\n 换行。我将我的 stdoutput 重定向到那个文
我是一名优秀的程序员,十分优秀!