41

我有一些文本输入,只要我触摸背景,我就可以隐藏键盘,但只有当我输入第一个文本框名称 textField1 时。现在这段代码应该很简单,但我似乎无法理解。

-(IBAction)backgroundTouched:(id)sender {
    [textField1 resignFirstResponder];
    [buildLength resignFirstResponder];
    [buildWidth resignFirstResponder];
    [ridgeWidth resignFirstResponder];
    [rafterWidth resignFirstResponder];
    [hipWidth resignFirstResponder];
    [eaveOverhang resignFirstResponder];
    [spacing resignFirstResponder];
}
4

4 回答 4

189

如果您想在点击一个按钮时隐藏键盘并且您的 中有多个,那么UITextFieldsview应该使用:

[self.view endEditing:YES];

点击视图上的任意位置,键盘将消失。

于 2012-12-21T14:13:03.827 回答
28

尝试这个:

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{
     [[self view] endEditing:YES];
}
于 2013-04-05T12:09:06.960 回答
6

您还可以遍历视图数组(例如 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];
}
于 2013-03-31T07:00:28.430 回答
2

您可以尝试UITouch方法,并在此设置您的文本字段对象并resignFirstResponder 在您触摸屏幕时调用键盘将退出,我希望这对您有用。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{  
    [currentSelectedTextField resignFirstResponder];
}
于 2012-05-01T08:50:57.200 回答