Отправить уведомление в центр уведомлений о горном льве

Может ли кто-нибудь дать пример отправки тестового уведомления из приложения Cocoa в Центр уведомлений? например. когда я нажимаю на NSButton

Уведомления в Mountain Lion обрабатываются двумя classами. NSUserNotification и NSUserNotificationCenter . NSUserNotification – это ваше фактическое уведомление, оно имеет заголовок, сообщение и т. Д., NSUserNotification могут быть установлены через свойства. Чтобы предоставить созданное уведомление, вы можете использовать метод deliverNotification: ansible в NSUserNotificationCenter. Документы Apple содержат подробную информацию о NSUserNotification и NSUserNotificationCenter, но базовый код для отправки уведомления выглядит следующим образом:

 - (IBAction)showNotification:(id)sender{ NSUserNotification *notification = [[NSUserNotification alloc] init]; notification.title = @"Hello, World!"; notification.informativeText = @"A notification"; notification.soundName = NSUserNotificationDefaultSoundName; [[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification]; } 

Это приведет к уведомлению с заголовком, сообщением и воспроизведет звук по умолчанию при его отображении. Есть гораздо больше, что вы можете делать с уведомлениями, чем только это (например, уведомления о планировании), и это подробно описано в документации, к которой я привязан.

Одна небольшая точка, уведомления будут отображаться только в том случае, если ваше приложение является ключевым приложением. Если вы хотите, чтобы ваши уведомления отображались независимо от того, является ли ваше приложение ключевым или нет, вам нужно указать делегат для NSUserNotificationCenter и переопределить метод делегата userNotificationCenter:shouldPresentNotification: чтобы он возвращал YES. Документацию для NSUserNotificationCenterDelegate можно найти здесь

Ниже приведен пример предоставления делегата NSUserNotificationCenter, а затем принудительное отображение уведомлений независимо от того, является ли ваше приложение ключевым. В файле приложения AppDelegate.m измените его следующим образом:

 - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { [[NSUserNotificationCenter defaultUserNotificationCenter] setDelegate:self]; } - (BOOL)userNotificationCenter:(NSUserNotificationCenter *)center shouldPresentNotification:(NSUserNotification *)notification{ return YES; } 

И в AppDelegate.h объявите, что class соответствует протоколу NSUserNotificationCenterDelegate:

 @interface AppDelegate : NSObject  
  • AppDelegate, rootViewController и presentViewController
  • Добавить UIView над всеми другими видами, включая StatusBar
  • как отобразить тестовый баннер IAd в симуляторе
  • Проблема UITableView при использовании отдельного делегата / источника данных
  • Одновременные распознаватели жестов в Iphone SDK
  • Использование MPMediaItems с AVAudioPlayer
  • Что такое NSCFDictionary?
  • Что такое двойная звезда (например, NSError **)?
  • Как использовать метод prepareForReuse
  • Изменение цвета фона в UIAlertView?
  • Простое обнаружение движения iPhone
  • Давайте будем гением компьютера.