4

我在这个项目中使用 Storyboard,并且在视图中有一个 UITextField。用户可以输入搜索词,按回车键,然后按预期跳转到 resultsViewController。

我遇到的问题是,如果由于某种原因键盘被关闭,segue 会自动发生。例如,如果用户点击 iPad 的 drop 键盘键,segue 会在没有搜索词的情况下发生……或者如果用户在 UITextField 之外点击,键盘会下降(如预期),但 segue 也会发生(非预期)。

这是我正在使用的方法(UITextField 的委托在情节提要中设置);另外,当我试图找出解决方案时,我已经在几个地方添加了“resignFirstResponder”和“endEditing: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];

}
4

2 回答 2

5

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

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

-(BOOL) shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
if ([self.searchField.text isEqualToString:@""]) {
    return NO;
    }
return YES;
}
于 2013-08-14T21:56:25.517 回答
0

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

- (BOOL) textFieldShouldEndEditing:(UITextField *)textField {

[self.view resignFirstResponder];
return YES;

}
于 2013-08-14T20:33:05.163 回答