代码之家  ›  专栏  ›  技术社区  ›  Jeff B

wait_fences:无法接收回复:10004003

  •  1
  • Jeff B  · 技术社区  · 15 年前

        alert = [[UIAlertView alloc] 
                              initWithTitle:@"Lookup" 
                              message:@"\n\n\n" 
                              delegate:self 
                              cancelButtonTitle:@"Cancel" 
                              otherButtonTitles:@"Submit", nil];
    
    label = [[UILabel alloc] initWithFrame:CGRectMake(12, 40, 260, 25)];
    label.font = [UIFont systemFontOfSize:16];
    label.textColor = [UIColor whiteColor];
    label.backgroundColor = [UIColor clearColor];
    label.shadowColor = [UIColor blackColor];
    label.shadowOffset = CGSizeMake(0, -1);
    label.textAlignment = UITextAlignmentCenter;
    label.text = @"Enter 10-Digit ISBN Number";
    [alert addSubview:label];
    
    field = [[UITextField alloc] initWithFrame:CGRectMake(16, 83, 252, 25)];
    field.font = [UIFont systemFontOfSize:18];
    field.backgroundColor = [UIColor whiteColor];
    field.keyboardAppearance = UIKeyboardAppearanceAlert;
    field.keyboardType = UIKeyboardTypeNumberPad;
    field.borderStyle = UITextBorderStyleBezel;
    field.delegate = self;
    [field becomeFirstResponder];
    [alert addSubview:field];
    [alert show];
    

    我在网上四处寻找,试图找出问题所在,有些人提到了辞职。我将其添加到了-(void)alertView:(UIAlertView*)alertView没有使用buttonIndex:(NSInteger)buttonIndex解除操作,但它没有执行任何操作。

    - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    [field resignFirstResponder]
    if (buttonIndex == 1) {
        NSLog(@"Submit");
    } else {
        NSLog(@"Cancel");
    }
    

    然后我添加了一个if语句,试图找出field是否是第一个响应者,但没有得到任何结果。

    if([field isFirstResponder]) {
         NSLog(@"field isFirstResponder");
    }
    

    有人对我可能做错什么有什么建议吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Jeff B    15 年前

    所以我想我弄明白了。

    似乎当我从alertView中调用[field resignFirstResponder]时,firstResponder不会真的辞职,并且在alertView被删除后的一两秒钟内键盘会被迫退出。但当我从alertView调用[field resignFirstResponder]时:ClickedButtonIndex会像预期的那样重新调用firstResponder。

        2
  •  0
  •   Deniz Mert Edincik    15 年前

    是否尝试删除文本字段,如:

    - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    
    [[alertView.subviews objectAtIndex:0] removeFromSuperview];
    
    
    }
    
    推荐文章