NSAlert 控件
let alert = NSAlert()
//增加一个按钮
alert.addButton(withTitle: "Ok")
//提示的标题
alert.messageText = "Alert"
//提示的详细内容
alert.informativeText = "password length must be more than 6 "
//设置告警风格
alert.alertStyle = .informational
alert .beginSheetModal(for: self.view.window!, completionHandler: { returnCode in
//当有多个按钮是 可以通过returnCode区分判断
print("returnCode :\(returnCode)") }
NSOpenPanel控件
let openDlg = NSOpenPanel()
openDlg.canChooseFiles = true
openDlg.canChooseDirectories = false
openDlg.allowsMultipleSelection = false
openDlg.allowedFileTypes = ["txt"]
openDlg.begin(completionHandler: { [weak self] result in
if(result.rawValue == NSFileHandlingPanelOKButton){
let fileURLs = openDlg.urls
for url: URL in fileURLs {
guard let text = try? NSString.init(contentsOf: url, encoding: String.Encoding.utf8.rawValue)
else {
return
}
self?.textView.string = text as String
}
}
})
NSPanel控件
@IBAction func loginButtonAction(_ sender: NSButton) {
self.window.beginSheet(self.loginPanel, completionHandler: { [weak self] returnCode in
let userName = self?.userNameField.stringValue
let password = self?.passwordField.stringValue
print("returnCode \(returnCode)")
})
}
@IBAction func okButtonAction(_ sender: NSButton) {
self.window.endSheet(self.loginPanel)
}