如果我在文本框中输入任何输入而没有使用按钮操作,则立即更改图像

时间:2014-03-22 05:25:38

标签: ios7 uiimageview

I have tried the bellow code-

  -(void)textFieldDidBeginEditing:(UITextField *)textField
  {
        if (self.textfield.text.length!=0)
           { 
           self.image.image=[UIImage imageNamed:@"Free-Boiler-Circle.png"];
           }
        else
           {
            self.image.image=[UIImage imageNamed:@"GREY_CIRCLE.png"];
           }       
    }

但是当我尝试这个时它改变了图像,当我进入下一个字段后输入值它前面的字段它改变图像....但我想做的是当我在文本字段中输入任何单个文本它会立即改变图像。 请帮我。 thnx in advnce。

1 个答案:

答案 0 :(得分:0)

您有两种选择。

执行- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string并执行您的逻辑,或者通过在UITextFieldTextDidChangeNotification注册来开始收听viewDidLoad通知,如下所示:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textDidChange:) name:UITextFieldTextDidChangeNotification object:self.textfield];

每次文本字段更改时都会调用此方法:

- (void)textDidChange:(NSNotification*)notification
{
    if (self.textfield.text.length!=0)
    { 
        self.image.image=[UIImage imageNamed:@"Free-Boiler-Circle.png"];
    }
    else
    {
        self.image.image=[UIImage imageNamed:@"GREY_CIRCLE.png"];
    }   
}

不要忘记在视图控制器的removeObserver:中调用dealloc