Это год, но решение довольно простое ... сделать, как предложил @Simon, но не указывайте заголовок кнопки отмены, поэтому:
UIActionSheet *alert = [[UIActionSheet alloc] initWithTitle: titleString
delegate: self
cancelButtonTitle: nil
destructiveButtonTitle: nil
otherButtonTitles: nil];
Но после добавления обычных кнопок добавьте кнопку отмены, например:
for( NSString *title in titles) {
[alert addButtonWithTitle:title];
}
[alert addButtonWithTitle:cancelString];
Теперь ключевой шаг - указать, какая кнопка является кнопкой отмены, например:
alert.cancelButtonIndex = [titles count];
Мы делаем [titles count]
, а не [titles count] - 1
, потому что мы добавляем кнопку отмены как дополнительную из списка кнопок в titles
.
Теперь вы также указываете, какую кнопку вы хотите использовать как деструктивную кнопку (т.е. красную кнопку), указав destructiveButtonIndex (обычно это кнопка [titles count] - 1
). Кроме того, если вы удерживаете кнопку отмены последней кнопкой, iOS добавит этот хороший интервал между другими кнопками и кнопкой отмены.
Все это совместимо с iOS 2.0, так что наслаждайтесь.