【问题标题】:how to close NSAlert after some time if no button is clicked by user如果用户未单击任何按钮,如何在一段时间后关闭 NSAlert
【发布时间】:2015-09-03 05:25:16
【问题描述】:

如果用户不点击任何按钮,我想在特定时间段后关闭警报窗口 (NSAlert)。有没有办法设置一个 NSTimer 在一段时间后关闭警报面板,比如 30 秒。

【问题讨论】:

  • 你是如何创建警报的?

标签: macos nsalert


【解决方案1】:

我刚刚做了类似的事情。我在这里为您修改了一些代码:

class ViewController: NSViewController {

    var progressWindow:NSAlert!

    func testOfProgressWindow() {
        progressWindow = NSAlert()
        progressWindow.alertStyle = .InformationalAlertStyle
        progressWindow.messageText = "some notes"

        let date = NSDate(timeInterval: 30, sinceDate: NSDate())
        let uiUpdateTimer = NSTimer(fireDate: date, interval: 0, target: self, selector: "closeSheet", userInfo: nil, repeats: false)
        let runLoop = NSRunLoop.mainRunLoop()
        runLoop.addTimer(uiUpdateTimer, forMode: NSDefaultRunLoopMode)

        progressWindow.beginSheetModalForWindow(self.view.window!, completionHandler: nil)
    }

    func closeSheet() {
        self.view.window?.endSheet(self.progressWindow.window)
    }

}

【讨论】:

  • 能否请您在objective -c中编写此代码,因为我从未使用过swift
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多