如何在iOS中结束编辑UITextfield后添加一些文本

时间:2013-12-19 10:40:25

标签: ios objective-c uitextfield

我希望在UITextField中结束编辑后添加一些字符串。

示例:

  

textfield 1:用户输入1000。在关注textfield2之后,我想在textfield1中添加“miles”。 => textfield1:1000英里

     

如果用户再次关注textfield1,它只显示1000个用户编辑,没有“里程”。

我尝试过但不起作用

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event
{
    UITouch *touch = [[event allTouches] anyObject];
    if ([textfield1 isFirstResponder] && (textfield1 != touch.view))
    {
        textfield1.text = [NSString stringWithFormat:@"miles"];
    }

    if ([textfield2 isFirstResponder] && (textfield2 != touch.view))
    {
        ....
    }     
}

6 个答案:

答案 0 :(得分:4)

您可以使用UITextField的委托方法来执行此操作

    - (void)textFieldDidBeginEditing:(UITextField *)textField;

    - (void)textFieldDidEndEditing:(UITextField *)textField;

哈德

答案 1 :(得分:2)

请试试这个,

- (void)textFieldShouldBeginEditing:(UITextField *)textField
{
    textField.text=@"";
}

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    textfield1.text = [NSString stringWithFormat:@"%@ miles",textField.text];
}

此处textFieldDidEndEditing是textField的委托方法。你需要设置textfield1.delegate=self。 希望这段代码可以帮到你。

答案 2 :(得分:1)

试试这个: -

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    if(textField.tag==10) // textfield 1
    {
        if(![ _txt1.text rangeOfString:@"miles"].location!= NSNotFound)
        {
            _txt1.text = [_txt1.text stringByAppendingString:@"miles"];
        }
    }
    else if (textField.tag == 20) // textfield 2
    {
        if([ _txt1.text rangeOfString:@"miles"].location!= NSNotFound)
        {
            _txt1.text = [_txtUser1.text stringByReplacingOccurrencesOfString:@"miles" withString:@""];
        }
    }
}


注意: - 将标记设置为文本字段为10& 20. _txt1是您的textfield1(UITextfield

答案 3 :(得分:1)

text全局变量设为NSString,然后

- (void)textFieldDidBeginEditing:(UITextField *)textField
    {
       if(text.length>0)
       {   
          self.textField.text =text;
       }
    }

    - (void)textFieldDidEndEditing:(UITextField *)textField
    {
        text =self.txtField.text;
        self.txtField.text = [NSString stringWithFormat:@"%@ miles", text];
    }

答案 4 :(得分:0)

设置文本字段的代理,如下所示

@interface YourController : UIViewController <UITextFeildDelegate>

然后使用以下方法检查

-(void)textFieldDidEndEditing:(UITextField *)textField{
 if(textField....) //condition to check textfeild is
  {
   //do your stuff

  }
}

希望这有帮助

答案 5 :(得分:0)

像这样设置textField1的标签

  self.textField1.tag = 100;

在viewDidLoad到你的textField出口,然后

  -(void)textFieldDidEndEditing:(UITextField *)textField
   {
         if (textField.tag == 100)
         {
              self.txtUserId.text = [NSString stringWithFormat:@"%@ miles", self.txtUserId.text];
         }
   }

因为这是一个委托方法,所以它将为每个textField结束编辑事件触发,这就是你必须检查标签号的原因。并且不要忘记设置代理

   @interface YourController : UIViewController <UITextFeildDelegate>