2014-09-16 2 views
0

Я использую этот метод:Как сделать тайм-аут NSUserNotification?

NSUserNotification *notification = [[NSUserNotification alloc] init]; 
      notification.title = @"Title"; 
      notification.informativeText = @"body"; 
      notification.soundName = NSUserNotificationDefaultSoundName; 

      [[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification]; 

Как я могу сделать это тайм-аут после 3-х секунд?

ответ

4

Установите NSTimer на огонь через три секунды, а затем используйте NSUserNotificationCenter s removeDeliveredNotification, чтобы удалить уведомление.

например. используя NSTimer+blocks для компактности и ясности:

[NSTimer scheduledTimerWithTimeInterval:3.0 block:^ 
{ 
    [[NSUserNotificationCenter defaultUserNotificationCenter] removeDeliveredNotification: notification]; 
} repeats:NO]; 

Обратите внимание, что это не является инструкцией или рекомендацией использовать что NSTimer категория - API не так хорошо :-)

1

Я решил проблему сам! Я использовал usleep(), чтобы подождать, а затем удалить его через 3 секунды. Надеемся, что это поможет

  NSUserNotification *notification = [[NSUserNotification alloc] init]; 
      notification.title = @"Upload Failed!"; 
      notification.informativeText = @"Error reading data."; 
      notification.soundName = NSUserNotificationDefaultSoundName; 
      [[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification]; 
      usleep(3000000); //waits for 3 seconds 
      [[NSUserNotificationCenter defaultUserNotificationCenter] removeDeliveredNotification: notification]; 
Смежные вопросы