IOS UIAlertController полужирная кнопка изменена в 8.3
UIAlertController с двумя кнопками со стилями:
UIAlertActionStyle.Cancel
UIAlertActionStyle.Default
в iOS 8.2, кнопка "Отмена" не имеет жирного шрифта, а по умолчанию выделена полужирным шрифтом.
В iOS 8.3 они переключились на
Вы можете увидеть его собственные приложения Apple, например, "Настройки" > "Почта" > "Добавить учетную запись" > "iCloud" ), ввести неверные данные, а затем отобразить это на 8.3:
Неподдерживаемый Apple ID
Узнать больше (полужирный)
OK (не жирный)
тогда как для 8.2 было наоборот.
Любое обходное решение, чтобы снова сделать это как 8.2. Почему это изменилось?
Ответы
Ответ 1
Из iOS 9 вы можете установить значение preferredAction
для действия, для которого вы хотите, чтобы заголовок кнопки был полужирным.
let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: nil)
let OKAction = UIAlertAction(title: "OK", style: .Default, handler: nil)
alert.addAction(cancelAction)
alert.addAction(OKAction)
alert.preferredAction = OKAction
presentViewController(alert, animated: true) {}
Кнопка OK, которая находится справа, будет выделена жирным шрифтом.
Ответ 2
Это намеренное изменение SDK. Я только что получил ответ от Apple на этот радар по этому вопросу, указав, что:
Это преднамеренное изменение - кнопка отмены будет выделена жирным шрифтом в предупреждениях.
Я не могу найти что-либо в различных журналах изменений, упоминающих это, к сожалению.
Итак, нам нужно внести изменения в наши приложения в местах, чтобы сделать некоторые вещи понятными.
Ответ 3
Я только что проверил в iOS 8.2: добавлена кнопка первая, а добавленная кнопка вторая выделена жирным шрифтом. С помощью этого кода кнопка отмены будет выделена жирным шрифтом:
[alertController addAction:[UIAlertAction actionWithTitle:@"Ok"
style:UIAlertActionStyleDefault
handler:nil]];
[alertController addAction:[UIAlertAction actionWithTitle:@"Cancel"
style:UIAlertActionStyleCancel
handler:nil]];
И с помощью этого кода кнопка по умолчанию будет выделена жирным шрифтом:
[alertController addAction:[UIAlertAction actionWithTitle:@"Cancel"
style:UIAlertActionStyleCancel
handler:nil]];
[alertController addAction:[UIAlertAction actionWithTitle:@"Ok"
style:UIAlertActionStyleDefault
handler:nil]];
Теперь я не могу проверить iOS 8.3, но это может быть причиной.