1

我有 iphone 应用程序,我在其中调用代码一个textFieldShouldReturn和另一个didEndEditing

我希望当用户返回时应用程序不应该调用didEndEditing代码,如果用户不按返回然后调用。

-(void)textFieldDidEndEditing:(UITextField *)textField
{
   if (textField==tagTextField) {
        [self showAnimationBack];
    }
    if (textField.tag==2 && [valueReturn isEqualToString:@"Yes"]) {
       if (textField.text.length > 0 || ![tagTextField.text isEqualToString:@""]) {
           [textField resignFirstResponder];
           [tagArray addObject:tagInputField.text];
           [tableView reloadData];
           tableView.frame = CGRectMake(tableView.frame.origin.x, tableView.frame.origin.y, tableView.frame.size.width, tableView.contentSize.height);
          [tableView.layer setCornerRadius:7.0f];
           [tableView.layer setMasksToBounds:YES];
           tableView.layer.borderWidth = 0.5;
           tableView.layer.borderColor = [UIColor grayColor].CGColor;
           [self showAnimationBack];
     }
}

 - (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    if(textField.tag == 2)
    {
        if (textField.text.length > 0 || ![tagTextField.text isEqualToString:@""]) {
        [textField resignFirstResponder];
        [tagArray addObject:tagInputField.text];
        [tableView reloadData]; 
        tableView.frame = CGRectMake(tableView.frame.origin.x, tableView.frame.origin.y, tableView.frame.size.width, tableView.contentSize.height);
        [tableView.layer setCornerRadius:7.0f];
        [tableView.layer setMasksToBounds:YES];
         tableView.layer.borderWidth = 0.5;
         tableView.layer.borderColor = [UIColor grayColor].CGColor;
         [self showAnimationBack];
     }
}

当用户按下返回时,我也会调用它

- (void)keyboardDidHide:(NSNotification *)aNotification {
       valueReturn=@"Yes";
}
4

2 回答 2

0

使用isEditing值,因为您(可能)在按下返回键时从第一响应者退出文本视图,textFieldDidEndEditing当它发生时应该使文本字段处于非编辑模式。

于 2013-11-08T11:24:39.297 回答
0

我不确定这是否是正确的做法,但你可以试试这个。声明一个变量isReturnPressed并使其YESintextFieldShouldReturn:并使其NOin textFieldDidEndEditing:。所以你可以检查条件如下..

-(void)textFieldDidEndEditing:(UITextField *)textField
{
   if (isReturnedPressed == NO) {
      // Do your stuff

   }
   else {
       isReturnedPressed = NO
   }
}

希望这可以帮助。

于 2013-11-08T11:58:43.143 回答