61

UITextField別の に加えられた変更を表示しようとしていUILabelます。UITextFieldユーザーが入力した各文字の後に全文をキャプチャする方法はありますか? 現在、私はこの方法を使用していますが、ユーザーが入力した最後の文字をキャプチャしません。

UITextView「didChange」メソッドがあることは知っていますが、 UITextField.

//does not capture the last character

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{

        [self updateTextLabelsWithText: textField.text];

    return YES;
}

各文字が入力された後に UITextField からテキストを取り出すにはどうすればよいですか?

ありがとうございました!

4

7 に答える 7

140
  1. 最初に1つ追加UITextFieldUILabel、ストーリーボード/ニブに追加します
  2. 次に割り当てます(ここでは myLabel を使用IBOutletましたUILabel
  3. ファイル所有者に割り当てUITextFieldDelegate、同じデリゲートを .h ファイルにも実装します
  4. 次のコード行を使用します。

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
        NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
        [self updateTextLabelsWithText: newString];
    
        return YES;
    }
    
    -(void)updateTextLabelsWithText:(NSString *)string
    {
         [myLabel setText:string];
    }
    

お役に立てれば。

于 2012-04-28T14:12:32.407 に答える
73

「Editing Changed」イベントを処理するだけです

[textField addTarget:self 
              action:@selector(editingChanged:)
    forControlEvents:UIControlEventEditingChanged];

そしてセレクター:

-(void) editingChanged:(id)sender {
   // your code
}

これは手動で、またはストーリーボードを使用して行うことができます。CTRL キーを押しながら「Editing changed」Sent イベントを .h にドラッグし、editingChanged メソッドを作成します。

于 2014-03-23T08:21:44.603 に答える
7

addTarget を使用した Swift Swift 2.0+

   titleTextField.addTarget(self, action: #selector(textFieldTyping), forControlEvents: .EditingChanged)

そして実装selector

func textFieldTyping(textField:UITextField)
{
    //Typing
}
于 2016-04-26T08:27:17.977 に答える