私は、自分のViewControllerにTextFieldとTextViewを持っています。 ViewControllerは、UITextFieldDelegateとUITextViewDelegateの両方、およびそれらのデリゲートメソッドに従います。最初のレスポンダからのTextViewの辞退
戻りボタンをクリックしたときにTextFieldまたはTextViewが最初のレスポンダでなくなることを辞退します。 func textFieldShouldReturn(_ textField: UITextField) -> Bool func textFieldDidEndEditing(_ textField: UITextField) func textViewShouldReturn(_ textView: UITextView) -> Bool func textViewDidEndEditing(_ textView: UITextView)
を実装し、対応するShouldReturn
の方法でtextField.resignFirstResponder() + textView.resignFirstResponder()
を持っています。
戻るボタンをクリックすると、TextFieldは正常に終了し、キーボードは隠れてしまいます。 TextViewの場合、戻りボタンは単にTextViewに新しい行を追加します。 textViewShouldReturn(_:)
はまったく呼び出されません。
textFieldShouldReturn(_:)
とtextViewShouldReturn(_:)
の違いを教えてもらえますか?TextViewを最初のレスポンダーから退会させるにはどうすればよいですか?
おかげ
import UIKit
class DetailViewController: UIViewController, UITextViewDelegate, UITextFieldDelegate {
@IBOutlet weak var date: UITextField!
@IBOutlet weak var noteText: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
date.delegate = self
noteText.delegate = self
}
//MARK: UITextViewDelegate
func textViewShouldEndEditing(_ textView: UITextView) -> Bool {
// Hide the keyboard.
textView.resignFirstResponder()
return true
}
func textViewDidEndEditing(_ textView: UITextView) {
}
func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
// Hide the keyboard.
textField.resignFirstResponder()
return true
}
func textFieldDidEndEditing(_ textField: UITextField) {
}
}
あなたはTextViewに – Mannopson
がそれにジェスチャーや関数を作成し、 – Mannopson