如果按下返回键,如何停止调用方法

时间:2013-11-08 10:45:06

标签: ios iphone uitextfield

我有iphone应用程序,我在textFieldShouldReturndidEndEditing上调用其他代码。

我希望当用户返回时,应用程序不应该调用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";
}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我不确定这是否是一种正确的方法,但你可以试试这个。声明变量isReturnPressed并在YES中将其设为textFieldShouldReturn:,并在NO中将其设为textFieldDidEndEditing:。所以你可以检查条件如下..

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

   }
   else {
       isReturnedPressed = NO
   }
}

希望这有帮助。