Search code examples
iosbuttonuialertcontroller

iOS UIAlertController bold button changed in 8.3


UIAlertController with two buttons with styles set:

UIAlertActionStyle.Cancel
UIAlertActionStyle.Default

in iOS 8.2, the Cancel button is non-bold and Default is bold. In iOS 8.3 they have switched round

You can see it Apple's own apps e.g., Settings > Mail > Add Account > iCloud > enter invalid data, then it shows like this on 8.3:

Unsupported Apple ID

Learn More (bold) OK (non-bold)

whereas it was the other way round for 8.2.

Any workaround to make it like 8.2 again. Why has it changed?


Solution

  • From iOS 9 you can set the preferredAction value to the action which you want the button title to be bold.

        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) {}
    

    The OK button which is on the right will be in bold font.