NSAlert 破坏性按钮
NSAlert destructive button
当 Big Sur 出现在我们的 Mac 上时,我注意到 NSAlert
控制器中的破坏性按钮文本显示为红色,如图所示。
我找不到在我的应用程序中引入此功能的方法。
使用标准 addButton(withTitle:)
方法,我们无法设置其意图(例如默认、取消或破坏性)。
你能给我点提示吗?
谢谢
将按钮的 属性 hasDestructiveAction
设置为 true
。这 属性 在大苏尔是新的。
添加到:
似乎只有当按钮不是第一个(因此不是蓝色突出显示的按钮)时,才能将按钮设置为破坏性。对于每个好奇的人,这就是它在代码中的样子:
let alert = NSAlert()
alert.messageText = "Alert Title"
alert.alertStyle = .warning
alert.addButton(withTitle: "Cancel")
alert.addButton(withTitle: "Destructive Button")
if #available(macOS 11.0, *) {
alert.buttons.last?.hasDestructiveAction = true
}
缺点是用户无法通过回车接受破坏性操作,必须手动单击或 select 通过选项卡按钮(必须在设置中启用该选项)。
当 Big Sur 出现在我们的 Mac 上时,我注意到 NSAlert
控制器中的破坏性按钮文本显示为红色,如图所示。
我找不到在我的应用程序中引入此功能的方法。
使用标准 addButton(withTitle:)
方法,我们无法设置其意图(例如默认、取消或破坏性)。
你能给我点提示吗?
谢谢
将按钮的 属性 hasDestructiveAction
设置为 true
。这 属性 在大苏尔是新的。
添加到
似乎只有当按钮不是第一个(因此不是蓝色突出显示的按钮)时,才能将按钮设置为破坏性。对于每个好奇的人,这就是它在代码中的样子:
let alert = NSAlert()
alert.messageText = "Alert Title"
alert.alertStyle = .warning
alert.addButton(withTitle: "Cancel")
alert.addButton(withTitle: "Destructive Button")
if #available(macOS 11.0, *) {
alert.buttons.last?.hasDestructiveAction = true
}
缺点是用户无法通过回车接受破坏性操作,必须手动单击或 select 通过选项卡按钮(必须在设置中启用该选项)。