UIActionSheet не отвечает на прикосновения - PullRequest
4 голосов
/ 18 мая 2009

У меня есть UIActionSheet, который я настроил так:

-(void)trash:(id)sender
{
UIActionSheet *sheet = [[[UIActionSheet alloc] initWithTitle:@"Delete" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Remove text" otherButtonTitles:@"Remove tags", nil] autorelease];

[sheet showInView:self.view];

}

Лист отображается в нижней части экрана, как и предполагалось, и все правильно. Однако ни одна из кнопок не активна. Единственный выход - прикоснуться к кнопке «Домой».

Что-то мне не хватает?

Представление self.view является представлением контроллера представления. Единственная странность в том, что он меньше высоты экрана, потому что находится над клавиатурой.

// Never called
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex;
{
    NSLog(@"%d",buttonIndex);
}

// Never called
- (void)actionSheet:(UIActionSheet *)actionSheet     didDismissWithButtonIndex:(NSInteger)buttonInde
{

}

// Never called
- (void)actionSheet:(UIActionSheet *)actionSheet     willDismissWithButtonIndex:(NSInteger)buttonIndex
{

}

// Called if I hit Home button
- (void)actionSheetCancel:(UIActionSheet *)actionSheet
{

}


// Called second
- (void)didPresentActionSheet:(UIActionSheet *)actionSheet
{

}

// Called first
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet
{

}

Ответы [ 3 ]

1 голос
/ 18 мая 2009

Если в представлении есть клавиатура, скорее всего, текстовое поле / текстовое представление, для которого видима клавиатура, является первым респондентом. Чтобы любой элемент управления реагировал на прикосновения, он должен быть первым респондентом.

Убедитесь, что ваш лист действий является первым респондентом, когда вы отображаете его.

0 голосов
/ 17 сентября 2009

Вы должны показать свое представление не в self.vew, а в корневом представлении Appdelegate.

Использовать [appDelegate.window.subviews objectAtIndex: 0];

У меня есть этот метод в AppDelegate:

-(UIView *) getRootView {
return [self.window.subviews objectAtIndex:0];

}

0 голосов
/ 18 мая 2009

Дважды проверьте статус firstResponder.

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