wait_fences: не удалось получить ответ: 10004003 - PullRequest
1 голос
/ 30 октября 2010

У меня есть представление оповещения, которое создается с текстовым полем внутри него.когда я закрываю представление оповещения с помощью кнопки отправки или отмены, я получаю ошибку wait_fences в консоли.он не падает, или я не смог его вызвать, но я действительно хотел бы выяснить, что происходит.

    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 didDismissWithButtonIndex: (NSInteger) buttonIndex, но он ничего не сделал.

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

}

Затем я добавил оператор if, чтобы попытаться выяснить, было ли поле первым ответчиком, и я ничего не получил.

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

есть ли у кого-нибудькакие-либо предложения о том, что я мог сделать неправильно?

Ответы [ 2 ]

1 голос
/ 02 ноября 2010

так что я думаю, я понял это.

кажется, что когда я вызывал [field resignFirstResponder] из alertView: didDismissWithButtonIndex, firstResponder действительно не подал в отставку, и клавиатура была бы выдвинута через секунду или две после удаления alertView.но когда я вызываю [field resignFirstResponder] из alertView: clickedButtonAtIndex, он уходит в отставку firstResponder, как и положено.

Я также столкнулся с проблемой, когда представление оповещения будет перемещаться вниз перед удалением, чтобы компенсировать отсутствие клавиатуры, но чтобы исправить это, я создал функцию, единственной целью которой является вызов [field resignFirstResponder] ивызвал это из alertView: clickedButtonAtIndex и задержал запуск на 0,2 секунды.

0 голосов
/ 30 октября 2010

Вы пытались удалить текстовое поле, например:

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {

[[alertView.subviews objectAtIndex:0] removeFromSuperview];


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...