Getting the Value of a UITextField as keystrokes are entered?

前端 未结 3 1772
醉酒成梦
醉酒成梦 2020-11-30 18:13

Let\'s say I have the following code:

IBOutlet UITextField* nameTextField;
IBOutlet UILabel* greetingLabel;

I\'d like the greetingLab

相关标签:
3条回答
  • 2020-11-30 18:24

    UITextField has a notification UITextFieldTextDidChange which will be fired every time the text changes if you register for it. Just register for that notification and in the method called by the notification, change the label's text.

    To add to this, the object passed to your notification handler will have the text of the UITextField.

    Hope that helps.

    0 讨论(0)
  • 2020-11-30 18:26

    you could register an action for the event UIControlEventEditingChanges on the text field:

    [nameTextField addTarget:self action:@selector(updateLabelUsingContentsOfTextField:) forControlEvents:UIControlEventEditingChanged];
    

    ...

    // TODO: error checking
    
    - (void)updateLabelUsingContentsOfTextField:(id)sender {
    
        greetingLabel.text = [NSString stringWithFormat:@"Hello %@", ((UITextField *)sender).text];
    
    }
    
    0 讨论(0)
  • 2020-11-30 18:39

    It turns out, the easiest way to do this is using Interface Builder:

    • Add a IBAction (to the ViewController, say, as in this case)
    • Ctrl-Click (or right click) on the UITextField in Interface Builder
    • Connect the "Editing Changed" event to the File's Owner's IBAction added in the first step.

    Works like a charm :) (I can't believe I spent numerous days on this, and to realize now that the solution was much simpler than I'd thought :P)

    0 讨论(0)
提交回复
热议问题