Подтвердить что ты не робот

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. Почему это изменилось?

4b9b3361

Ответ 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, но это может быть причиной.