Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 关闭键盘和按钮_Objective C_Ios_Xcode - Fatal编程技术网

Objective c 关闭键盘和按钮

Objective c 关闭键盘和按钮,objective-c,ios,xcode,Objective C,Ios,Xcode,我有两件东西互相碰撞。每一个都很好。但我不知道如何让它们都起作用。问题是,我有一些文本字段和按钮,我在用户触摸背景时添加了键盘,但这个方法也会被调用,然后用户尝试单击按钮。。所以这个按钮不起作用了。这是我键盘上的一些代码,也许任何人都知道如何正确实现 -(void)dismissKeyboard { NSLog(@"resign"); [[_textFields objectAtIndex:0] resignFirstResponder]; [[_textFields o

我有两件东西互相碰撞。每一个都很好。但我不知道如何让它们都起作用。问题是,我有一些文本字段和按钮,我在用户触摸背景时添加了键盘,但这个方法也会被调用,然后用户尝试单击按钮。。所以这个按钮不起作用了。这是我键盘上的一些代码,也许任何人都知道如何正确实现

-(void)dismissKeyboard {
    NSLog(@"resign");
    [[_textFields objectAtIndex:0] resignFirstResponder];
    [[_textFields objectAtIndex:1] resignFirstResponder];
    [[_textFields objectAtIndex:2] resignFirstResponder];
    [[_textFields objectAtIndex:3] resignFirstResponder];
}


UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
                               initWithTarget:self
                               action:@selector(dismissKeyboard)];
[TableControll.view addGestureRecognizer:tap];

[TableControll.view addSubview:save];
[button addTarget:self action:@selector(goAdvanced)
 forControlEvents:UIControlEventTouchUpInside];
[save addTarget:self action:@selector(saveInfo)
     forControlEvents:UIControlEventTouchUpInside];

尝试修改这部分代码

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
                               initWithTarget:self
                               action:@selector(dismissKeyboard)];
tap.cancelsTouchesInView = NO;
[TableControll.view addGestureRecognizer:tap];

希望它能帮助你

您好,只需在按钮后面添加一个按钮,按钮宽度将为320,高度将为480,具体取决于iphone的大小。现在,您在背景中有一个按钮,该按钮上有其他按钮。因此,现在您可以为这些按钮提供不同的方法。尝试一下,并告诉我它是否正常工作


快乐编码

这可能是因为手势识别器,要区分点击事件和按钮事件,请使用此选项

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 
       shouldReceiveTouch:(UITouch *)touch {

    if ([touch.view isKindOfClass:[UIButton class]]) {
        return NO;
    }
    return YES;
}

在下面的委托方法中

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
包括条件,如

 if([touch.view isKindOfClass:[UIButton class]])
    {
        return NO;
    }

和其他需要激活触摸而不是添加手势识别器的控件,您可以使用触摸开始功能: 例如:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"resign");
    [textfield1 resignFirstResponder];
    [textFiled2 resignFirstResponder];

}
希望这对你有帮助。 谢谢