2015-09-03 1 views
0

Я хочу закрыть окно предупреждения (NSAlert) через определенный период времени, если пользователь не нажимает ни на одну из кнопок. Есть ли способ настроить NSTimer для закрытия панели предупреждения через некоторое время, скажем, 30 секунд.Как закрыть NSAlert через некоторое время, если пользователь не нажал кнопку

+0

Как вы создаете предупреждение? – uchuugaka

ответ

2

Я только что сделал что-то подобное. Я пересмотрел некоторые из своих кодов для вас здесь:

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) 
    } 

} 
+0

Можете ли вы сделать этот код объективным -c, так как я никогда не использовал swift –

 Смежные вопросы

  • Нет связанных вопросов^_^