使用 Swift 创建 NSAlert

我们都知道如何用 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 的第一个按钮,这里就是“好的”。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 人,活着简单,活下去不易;很好的活下去很难。 世上最能经受苦难的还是人类自己,无法想象人的内心究竟有多大才能盛得下...
    夜空天下阅读 3,418评论 5 8
  • 今天是国际香槟日!知道这7件事,让你成为香槟达人 每年十月份的第三个周五,是全世界香槟爱好者们最开心的日子。 无论...
    今晚扁老虎阅读 3,682评论 0 1
  • 有没有这种感觉,无论你是在工作中,还是在生活中,或者和朋友聊天,或者走在大街上,你都会一不小心遇见牛人,有时你会惊...
    希睿希阅读 3,122评论 3 4
  • “你们为什么分手?” “他问我为什么不能毫无保留地爱他。” “就因为这句话?” “不是,因为我心虚了。” 他是我的...
    耳东大王不吃香菜阅读 1,724评论 0 0
  • 在为期4天的党务培训班,主办方为学员安排了团队拓展训练科目。通过参加团队拓展训练科目,自感深受启发。 为指导自己的...
    颜黙阅读 2,707评论 2 6

友情链接更多精彩内容