2011-08-11 16 views
17

uitextviewが最初のレスポンダになったときの処理方法。私はテキストビューでテキストを持っており、ビューがアクティブになったときにテキストをクリアしたいと思っています。どうやってやるの?ちょうどそのメソッド内でYESと切片を返すUITextViewが最初のレスポンダになったときを知る方法

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView 

:事前

答えて

47

のおかげでは、あなたは間違いのUITextViewDelegate方法を使用することができます。またUITextFieldDelegateとしてUITextFieldsのためにそれを行うことができます役立ちます

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

希望を。

+1

これは受け入れられる回答である必要があります。 –

+0

非常に同意します。 –

4

前の答えがUITextBoxのための偉大な仕事をしていますが、NSResponderから派生したカスタムクラスを持っていると知っておく必要がある場合、それは最初の応答者になった場合:上記のように

-(BOOL) becomeFirstResponder 
{ 
    // Your stuff here 
    return YES; 
} 
1

、あなたはbecomeFirstResponderを上書きすることができますが、ことに注意してくださいスーパークラス実装を呼び出す必要があります。そうしないと、テキストフィールド上でキーボードをポップするようなことは機能しません。すなわち、

override func becomeFirstResponder() -> Bool { 
    if super.becomeFirstResponder() { 
    // set up the control state 
    return true 
    } 

    return false 
} 
0

textViewShouldBeginEditing実際にはテキストビューが最初のレスポンダになる前にトリガされます。

textViewDidBeginEditingは、テキストビューが最初の応答者になるとトリガーし、アクティブなテキストビューが何であるかを知る必要があるコードを実行するのに最適な場所になります。

アクティブなフィールドが本当に心配されていない場合、フィールドがタップされた後でテキストを消去したいだけなら、どちらの機能も使用できます。

EDIT:テキストフィールドでも同じ方法が使用できます。

関連する問題