美文网首页
使用 Swift 创建 NSAlert

使用 Swift 创建 NSAlert

作者: 张嘉夫 | 来源:发表于2017-05-09 16:21 被阅读541次

    我们都知道如何用 Objective-C 创建 NSAlert:

        NSAlert *alert = [[[NSAlert alloc] init] autorelease];
        [alert addButtonWithTitle:@"Delete"];
        [alert addButtonWithTitle:@"Cancel"];
        [alert setMessageText:@"Delete the document?"];
        [alert setInformativeText:@"Are you sure you would like to delete the document?"];
        [alert setAlertStyle:NSWarningAlertStyle];
        [alert beginSheetModalForWindow:[self window] modalDelegate:self didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:nil];
    

    假设 alert 用于确认用户是否想删除某个文档。

    我们希望“删除”按钮运行删除函数,“取消”按钮只需隐藏 alert 即可。

    但如何用 Swift 实现呢?

    从 OS X 10.10 Yosemite 版本开始 beginSheetModalForWindow:modalDelegate 就已经被弃用了

    func dialogOKCancel(question: String, text: String) -> Bool {
        let myPopup: NSAlert = NSAlert()
        myPopup.messageText = question
        myPopup.informativeText = text
        myPopup.alertStyle = NSAlertStyle.warning
        myPopup.addButton(withTitle: "好的")
        myPopup.addButton(withTitle: "取消")
        return myPopup.runModal() == NSAlertFirstButtonReturn
    }
    
    let answer = dialogOKCancel(question: "确认?", text: "请选择。")
    

    该方法根据用的选择返回 truefalse

    NSAlertFirstButtonReturn 表示添加进 alert 的第一个按钮,这里就是“好的”。

    相关文章

      网友评论

          本文标题:使用 Swift 创建 NSAlert

          本文链接:https://www.haomeiwen.com/subject/idqitxtx.html