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