2012-01-15 20 views

答えて

7

NSNotificationCenterを使用して、UITextFieldTextDidChangeNotificationをご覧ください。

[[NSNotificationCenter defaultCenter] addObserver:self 
      selector:@selector(textFieldChanged) 
       name:UITextFieldTextDidChangeNotification 
      object:textField]; 

今すぐ機能-(void)textFieldChanged;を実装し、この関数が呼び出されるたびに、古いテキストとUITextFieldに新しいテキストを比較します。変更されたものは、押されたボタンです。

UITextFieldTextDidBeginEditingNotificationUITextFieldTextDidEndEditingNotificationについては、テキストが入力されていなくても(バックスラッシュのように)ボタンが押されたことを確認してください。

+0

+1良い答え:) –

+0

恐ろしい! @selector(textFieldChanged)を動作させるために@selector関数名の後にコロンを取り除かなければならなかった – RanLearns

+0

ありがとう= =) – Dimme

2

テキストフィールドに代理人を指定します。デリゲートの-textField:shouldChangeCharactersInRange:replacementString:メソッドは、ユーザーがキーボードで文字を入力するなど、テキストを変更するたびに呼び出されます。

+0

テキストフィールドが空白で、ユーザーがバックスラッシュを押した場合、このメソッドは呼び出されません。 – Dimme

+0

Dimme、これはテキストが空でバックスラッシュが押されても機能しません。 UITextFieldTextDidChangeNotificationを使用したソリューションは、デリゲートのtextFieldとどのように異なるのですか?shouldChangeCharactersInRange:replacementString?そうではありません、彼らはどちらも同じことをします!これはすべてのバックスペースプレスを傍受するようには機能しません – PostCodeism

関連する問題