Странное поведение ActionSheet кнопки Отмена - PullRequest
0 голосов
/ 14 апреля 2011

Я новичок в Objective-C, я пытаюсь написать приложение для iPad (Objective-C 2.0, Xcode 4.0.1).Я «играю» с ActionSheet, чтобы понять, как он работает.В файл пера я поместил кнопку, связанную с моим методом "buttonPressed".

Я написал этот код:

-(IBAction)buttonPressed
{   
    UIActionSheet *myActionSheet = [[UIActionSheet alloc] initWithTitle:@"My Action Sheet" delegate:nil cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"OK" otherButtonTitles:@"Test", nil];

    NSLog([NSString stringWithFormat:@"%d", [myActionSheet numberOfButtons]]);
    NSLog([myActionSheet buttonTitleAtIndex:0]);
    NSLog([myActionSheet buttonTitleAtIndex:1]);
    NSLog([myActionSheet buttonTitleAtIndex:2]);

    [myActionSheet showInView:self.view];
    [myActionSheet release];
}

Это результат NSLog:

2011-04-14 14:52:30.428 TrampManage[3568:207] 3
2011-04-14 14:52:30.429 TrampManage[3568:207] OK
2011-04-14 14:52:30.430 TrampManage[3568:207] Test
2011-04-14 14:52:30.432 TrampManage[3568:207] Cancel

Но отображаемое представление немного отличается (см. Изображение: http://www.imagup.com/data/1117452257.html). На данный момент у меня есть один простой вопрос: почему моя кнопка «Отмена» не появляется?

Ответы [ 3 ]

0 голосов
/ 14 апреля 2011

Скорее всего, вы на iPad, где новый интерфейс не отображает кнопку отмены. Пользователь может отменить лист, просто нажав за пределами листа. Не лучшее дизайнерское решение ИМХО, но так оно и есть сейчас.

0 голосов
/ 28 января 2013

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

Подробное объяснение:

см. Это изображение iphone, которое показывает кнопку ОК enter image description here

ниже На рисунке показан лист действий при отображении на iPad. Интересно, что на iPad кнопка ОК (устанавливается cancelButtonTitle: параметр) не отображается.

enter image description here

Значение (buttonIndex) каждой кнопки при нажатии выглядит следующим образом:
➤ Удалить сообщение - 0
➤ Вариант 1 - 1
➤ Вариант 2 - 2
➤ ОК - 3
На iPad, когда пользователь нажимает на область за пределами лист действий, лист действий отклонен и значение buttonIndex становится 3. Интересно, если вы указали ноль для cancelButtonTitle: часть, значение buttonIndex будет равно -1, когда Лист действий отклонен.

0 голосов
/ 14 апреля 2011

Как подсказывает ваш тег, вы, вероятно, работаете над проектом ipad.

В документации говорится о кнопке отмены для iPad:

cancelButtonTitle Название кнопки отмены.Эта кнопка автоматически добавляется в лист действий и ей присваивается соответствующий индекс, доступный из свойства cancelButtonIndex.Эта кнопка отображается черным цветом, чтобы указать, что она представляет действие отмены. Укажите ноль, если вы не хотите, чтобы кнопка отмены или представляла лист действий на iPad .

Вы можете отменить, коснувшись за пределами листа действий.

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