UIAlertController,带有两个样式集的按钮:
UIAlertActionStyle.Cancel
UIAlertActionStyle.Default
在iOS 8.2中,“取消”按钮为非粗体,“默认”为粗体。 在iOS 8.3中,他们已经转换了
您可以看到Apple自己的应用,例如,设置>邮件>添加帐户> iCloud>输入无效数据,然后在8.3上显示如下:
不支持的Apple ID
了解更多(粗体) 好的(非粗体)
而8.2则是另一种方式。
任何使其再次成为8.2的解决方法。为什么会改变?
答案 0 :(得分:94)
在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按钮将以粗体显示。
答案 1 :(得分:14)
这是对SDK的有意更改。我刚刚收到Apple对this radar的回复,说明:
这是故意更改 - 取消按钮将以警告方式加粗。
不幸的是,我在各种更改日志中找不到任何内容。
因此,我们需要在某些地方对我们的应用进行更改,以使某些事情变得有意义。
答案 2 :(得分:2)
我刚刚在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中查看,但这种行为可能是一个原因。
答案 3 :(得分:2)
自iOS 9起,var newHtml = '<span style="color:red;">new</span>';
$('#list li:last-child').append(newHtml);
具有名为preferredAction
的属性。 go build . && ./main
具有以下声明:
UIAlertController
用户从警报中采取的首选操作。 [...]首选操作仅与
preferredAction
样式有关;操作表未使用它。当您指定首选操作时,警报控制器会突出显示该操作的文本以使其重点突出。 (如果警报中还包含取消按钮,则首选操作将收到突出显示的信息,而不是取消按钮。)[...]此属性的默认值为var preferredAction: UIAlertAction? { get set }
。
下面的Swift 5 / iOS 12示例代码显示了如何显示UIAlertController.Style.alert
,该文本将使用nil
突出显示指定UIAlertController
的文本:
UIAlertAction
答案 4 :(得分:0)
关于alertActions的Objective-c和PreferredAction的一些话。如果使用PreferredAction,则必须将BOUTH alertAction设置为style:UIAlertActionStyleDefault。如果将某些样式设置为:UIAlertActionStyleCancel,则preferredAction将被忽略
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"All you base"
message:@"Are belong to us!" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* alertActionShowYes = [UIAlertAction actionWithTitle:@"YES!" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
NSLog(@"I serve for my emperor!");
}];
UIAlertAction* alertActionNo = [UIAlertAction actionWithTitle:@"NO!" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
NSLog(@"NOOOO it's not true!!");
}];
[alertController addAction:alertActionShowYes];
[alertController addAction:alertActionNo];
alertController.preferredAction = alertActionShowYes;
[alertController setPreferredAction:alertActionShowYes];
[self presentViewController:alertController animated:YES completion:nil];