7

Я работаю над быстрым приложением os x, и у меня возникли проблемы с пониманием структуры userNoticiation/didActivateNotification. Я просмотрел документацию и обыскал SO, но я все еще застрял. Любое наведение на следующий код будет высоко ценится:Swift NSUserNotificationCenter didActivateNotification не работает

func notify(message: String, callBack: String) { 


    println(message) 
    println(callBack) 
    var notification:NSUserNotification = NSUserNotification() 
    notification.title = "New Phone Call" 
    notification.informativeText = message 
    notification.actionButtonTitle = "Lookup" 
    notification.hasActionButton = true 
    var center:NSUserNotificationCenter = NSUserNotificationCenter.defaultUserNotificationCenter() 


    center.delegate = self 
    center.scheduleNotification(notification) 



} 
func notify (center: NSUserNotificationCenter, didActivateNotification notification: NSUserNotification){ 
    center.delegate = self 
    println("clicked") //this does not print 
} 

В уведомлении отображается точно так, как я хотел бы, чтобы это. Нажатие кнопки «Поиск», которую я определил, приведет к моему приложению на первый план при первом нажатии, но код, который я ожидал бы обработать, не срабатывает.

Заранее спасибо.

ответ

5

Измените свою вторую декларацию «func notify» на «необязательный func userNotificationCenter»

+0

Это действительно работает? Я попробовал это, когда мои клики уведомлений не срабатывали, и он отправляет сообщение об ошибке «необязательно» может применяться только к протоколам « –

+0

@ChrisR Возможно, это было с Swift 1.x? Вы пытались удалить «необязательный» квалификатор? –

+0

Документация для функции делегирования 'didActivateNotification' является [здесь] (https://developer.apple.com/library/mac/documentation/Foundation/Reference/NSUserNotificationCenterDelegate_Protocol/index.html#//apple_ref/occ/intfm/NSUserNotificationCenterDelegate/userNotificationCenter: didActivateNotification :). –