UITextField在键盘关闭时触发不需要的segue



我在这个项目中使用Storyboard,并且在视图中有一个UITextField。用户可以键入一个搜索词,按回车键,然后按预期显示结果ViewController。

我遇到的问题是,如果由于任何原因键盘被关闭,segue就会自动发生。例如,如果用户点击iPad的下拉键盘键,则出现没有搜索词的segue。。。或者,如果用户在UITextField之外敲击,键盘会掉落(如预期),但也会发生segue(非预期)。

以下是我正在使用的方法(UITextField的委托设置在故事板中);此外,当我试图找到解决方案时,我在几个地方放了"辞呈第一响应者"one_answers"endEdition:YES"的消息。抱歉搞砸了:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
  if ([textField.text isEqualToString:@""]) {
    [textField resignFirstResponder];
    return NO;
  }
  self.clueString = textField.text;
  [textField resignFirstResponder];
  return YES;
}
- (BOOL) textFieldShouldEndEditing:(UITextField *)textField {
  [self.view resignFirstResponder];
  return YES;
}
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
 [self.view endEditing:YES];
}

好吧,我觉得很傻,但我会回答我的问题,以防其他人有这个问题。

为了控制segue应该发生还是不应该发生,我需要实现以下方法:

-(BOOL) shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
if ([self.searchField.text isEqualToString:@""]) {
    return NO;
    }
return YES;
}

您是否尝试过将此方法设置为始终返回no?你可能需要在那里检查一下是否进行搜索。(就像你上面的方法)

- (BOOL) textFieldShouldEndEditing:(UITextField *)textField {
[self.view resignFirstResponder];
return YES;
}

最新更新