2016-04-27 12 views
3

私の質問は、ユーザーがUITextViewに文字を入力したときにリッスンするイベントリスナーを設定する方法ですか?Swift UITextViewイベントリスナー

textview.hasText()を使用してテキストがあるかどうかを確認できますが、UITextViewに既にテキストがある場合でも入力した文字を聞く必要があります。

+0

この '' UITextViewプレースホルダの答えは 'UITextViewDelegate' ... http://stackoverflow.com/questions/27652227/text-view-placeholder-swift/28271069#28271069を使用する方法の簡単な機能の一例を提供 – clearlight

答えて

2

UITextViewDelegateをご覧ください。

たとえば、あなたのビューコントローラでUITextViewDelegateプロトコルに準拠してください

@IBOutlet weak var textView: UITextView!; 

を持っている場合は、あなたのviewDidLoadメソッドで

class ViewController: UIViewController, UITextViewDelegate { 

// stuff 
} 

textView.delegate = self; 

は次に何に応じて追加しますあなたが必要とするUITextViewDelegateからメソッドを実装します。例えば

、テキストビューが実装変わったときにあなたが聴きたい場合:Appleのから

func textViewDidChange(textView: UITextView) { 

} 

:このメソッドを実装しないコメントに反映させるため:

func textViewDidEndEditing(textView: UITextView) { 
    // your code here. 
    print(textView.text); 
} 

を編集しますドキュメント:

デリゲートに、指定されたテキスト ビューがユーザーによって変更されました。

+0

これは近いですが、私は達成する必要があるのはかなり正しいとは思いません。私は 'textViewDidEndEditing()'を聞きたくありません。なぜなら、編集が進行中でキーボードが開いている間は、キーボードが閉じられ、編集が止まったことを意味するからです。 –

+0

Appleのドキュメントを見て、 'textViewDidChange(_ textView:UITextView)'を見つけました。これは私が探しているものかもしれません。 –

+0

私は自分の答えを更新しました。 –

関連する問題