beginSheetModalForWindow:modalDelegate
在OS X 10.10优胜美地已被弃用。
夫特2
func dialogOKCancel(question: String, text: String) -> Bool {
let alert: NSAlert = NSAlert()
alert.messageText = question
alert.informativeText = text
alert.alertStyle = NSAlertStyle.WarningAlertStyle
alert.addButtonWithTitle("OK")
alert.addButtonWithTitle("Cancel")
let res = alert.runModal()
if res == NSAlertFirstButtonReturn {
return true
}
return false
}
let answer = dialogOKCancel("Ok?", text: "Choose your answer.")
这将返回根据用户的选择或true
false
。
NSAlertFirstButtonReturn
代表添加到对话框的第一个按钮,这里是“OK”之一。
斯威夫特3
func dialogOKCancel(question: String, text: String) -> Bool {
let alert = NSAlert()
alert.messageText = question
alert.informativeText = text
alert.alertStyle = NSAlertStyle.warning
alert.addButton(withTitle: "OK")
alert.addButton(withTitle: "Cancel")
return alert.runModal() == NSAlertFirstButtonReturn
}
let answer = dialogOKCancel(question: "Ok?", text: "Choose your answer.")
斯威夫特4
我们现在使用的警报的风格和按钮选择枚举。
func dialogOKCancel(question: String, text: String) -> Bool {
let alert = NSAlert()
alert.messageText = question
alert.informativeText = text
alert.alertStyle = .warning
alert.addButton(withTitle: "OK")
alert.addButton(withTitle: "Cancel")
return alert.runModal() == .alertFirstButtonReturn
}
let answer = dialogOKCancel(question: "Ok?", text: "Choose your answer.")
你可能要考虑的是'beginSheetModal(用于:completionHandler:)'是*不*过时,实际上它可能是更理想的方式来处理你的模态对话框(在一个块中)。它也会更接近老式的'didEndSelector',它不会停止整个应用程序。 – Patru 2017-07-01 13:30:38