class ViewController: UIViewController, UITextViewDelegate {
@IBOutlet weak var myTextView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
myTextView.delegate = self
}
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool
{
if(text == "\n")
{
view.endEditing(true)
return false
}
else
{
return true
}
}
}
可以在 textViewDidChange
中查找换行符"\n"
来实现。
否则,更好的做法是使用 func textView(UITextView, shouldChangeTextIn: NSRange, replacementText: String)
并检查 replacementText == "\n"
示例:
func textView(UITextView, shouldChangeTextIn: NSRange, replacementText: String){
if replacementText == "\n"{
// do your stuff here
// return false here, if you want to disable user from adding newline
}
// otherwise, it will return true and the text will be replaced
return true
}
func textView(UITextView, shouldChangeTextIn: NSRange, replacementText: String)
中返回什么。 - ramacode使用 textFieldShouldReturn: 方法
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
if textField == yourTextField {
//do something
}
return true
}