如何以编程方式取消选择UITextField

时间:2015-07-24 21:26:48

标签: ios objective-c iphone uitextfield

我有UITextField我可以点击,并编辑内容。我在使用:

按下UITextField时运行代码
[personalCountryLabel addTarget:self action:@selector(countryPressed) forControlEvents:UIControlEventEditingDidBegin];  

这提供了另一个视图控制器。但是,当我单击后退按钮时,仍然选择UITextField,因此文本再次运行,将我发送回视图控制器。

我使用代码:

textField.enabled = false;

textField.enabled = true;

分别关闭和开启UITextField的编辑,但是连续执行此操作并不会取消选择UITextField

如何以编程方式取消选择UITextField(即行光标不再闪烁的位置)。

3 个答案:

答案 0 :(得分:5)

如果我理解你正确的要求,你只需要:

[textField resignFirstResponder];

答案 1 :(得分:1)

/ *以编程方式取消选择此代码下面的Uitextfiels * /

UITextField *txtDeselect = [[UITextField alloc]initWithFrame:CGRectMake(self.view.frame.origin.x+20, self.view.frame.origin.y+20, self.view.frame.size.width-40, 40)];
    [txtDeselect setBackgroundColor:[UIColor yellowColor]];
    [txtDeselect setBorderStyle:UITextBorderStyleRoundedRect];
    [txtDeselect setTextAlignment:NSTextAlignmentCenter];
    [txtDeselect setText:@"Email"];
    txtDeselect.enabled = NO;
    [self.view addSubview:txtDeselect];

答案 2 :(得分:0)

你设置了插座和放大器吗?在视图控制器中委托UITextField? 你为什么要使用UItextfield?

我建议你在展示新的视图控制器之前使用其中一个:

选项1:

[youtextfield resignFirstResponder];

//请确保您连接插座& ....

你可以在viewWillAppear上调用它

选项2:

[self.view endEditing:YES]; // this regularly
happend after present another VC)

你不应该使用shouldEndEditing