这个问题已经在这里有一个答案:
- 关闭键盘触摸任何地方的UITextField外 8个回答
我有几个文本输入框,我可以隐藏键盘,每当我接触的背景,但只有当我已经进入第一个文本框的名字textField1的。 现在这个代码应该是简单,但我似乎无法得到它。
-(IBAction)backgroundTouched:(id)sender {
[textField1 resignFirstResponder];
[buildLength resignFirstResponder];
[buildWidth resignFirstResponder];
[ridgeWidth resignFirstResponder];
[rafterWidth resignFirstResponder];
[hipWidth resignFirstResponder];
[eaveOverhang resignFirstResponder];
[spacing resignFirstResponder];
}
如果要隐藏键盘,当你点击一个按钮,你有一个以上的UITextFields
在你的view
,那么你应该使用:
[self.view endEditing:YES];
点击任意位置上来看,和键盘将消失。
试试这个:
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[[self view] endEditing:YES];
}
您也可以通过视图迭代一个数组(如你的UIView的子视图)和手动辞职的键盘,如果你不想辞职对你父母的UIView内的所有子视图这是件好事。
- (void)viewDidLoad
{
self.view.userInteractionEnabled = TRUE;
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
//Iterate through your subviews, or some other custom array of views
for (UIView *view in self.view.subviews)
[view resignFirstResponder];
}
你可以试试UITouch
方法,并在此设置你的文本字段对象,并调用resignFirstResponder
当过触摸屏幕,键盘会辞职,我希望这会为你工作。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[currentSelectedTextField resignFirstResponder];
}