我有一个按钮,它在iOS 5和6上像往常一样工作。但是在iOS 7上,当我按下该按钮时,键盘会消失,但方法并未被调用。当我第二次按下它时,它才按照预期工作。
为什么会这样呢?
以下是代码:
[self.loginButton addTarget:self action:@selector(loginButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
我在UITableView单元格中有一个按钮。
编辑:
这是我如何在此方法开始时取消键盘,但在iOS7上第一次点击按钮时该方法不会被调用,需要第二次点击。
for (UITextField *field in @[self.loginField, self.passwordField]) {
if ([field isFirstResponder]) {
[field resignFirstResponder];
}
}
我还有手势识别器,可以在点击屏幕外部时移除键盘:
UITapGestureRecognizer *tapper = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(removeKeyboard)];
[self.view addGestureRecognizer:tapper];
tapper.cancelsTouchesInView = NO;
这是它的方法:
- (void) removeKeyboard
{
[self traverseAllSubviewsOfView:self.view withBlock:^(UIView *inView) {
[inView resignFirstResponder];
}];
}