誰かがCocoaアプリケーションから通知センターにテスト通知を送信する例を挙げることはできますか?例えば。私がクリックしたときNSButton
Mountain Lion通知センターに通知を送信
答えて
Mountain Lionの通知は2つのクラスで処理されます。 NSUserNotification
およびNSUserNotificationCenter
。 NSUserNotification
はあなたの実際の通知です。プロパティを介して設定できるタイトルやメッセージなどがあります。作成した通知を送信するには、NSUserNotificationCenterで利用可能なdeliverNotification:
メソッドを使用できます。アップルのドキュメントは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];
}
表示されます。これだけではなく、通知(通知のスケジュール設定など)よりもはるかに多くのことがあります。詳細については、リンク先のドキュメントをご覧ください。
小規模な点が1つあります。通知は、アプリケーションが主要アプリケーションである場合にのみ表示されます。アプリケーションがキーであるかどうかにかかわらず通知を表示するには、NSUserNotificationCenter
の代理人を指定し、代理メソッドuserNotificationCenter:shouldPresentNotification:
をオーバーライドしてYESを返す必要があります。 NSUserNotificationCenterDelegate
のドキュメントが見つかりましたhere
ここでは、NSUserNotificationCenterに代理人を提供し、アプリケーションがキーであるかどうかにかかわらず通知を強制的に表示する例を示します。アプリケーションのAppDelegate.mファイルで、このようにそれを編集します。
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[[NSUserNotificationCenter defaultUserNotificationCenter] setDelegate:self];
}
- (BOOL)userNotificationCenter:(NSUserNotificationCenter *)center shouldPresentNotification:(NSUserNotification *)notification{
return YES;
}
そしてAppDelegate.hで、クラスはNSUserNotificationCenterDelegateプロトコルに準拠していることを宣言します。
@interface AppDelegate : NSObject <NSApplicationDelegate, NSUserNotificationCenterDelegate>
- 1. Mountain Lionの通知センターに通知を送信するコマンドラインユーティリティ
- 2. PyObjCを使用したMountain Lionの通知センターの使用
- 3. 通知センター?
- 4. 通知センター
- 5. iOSで受信通知センター通知を検出する
- 6. iOS5シミュレータ通知センター
- 7. 通知センターのscrollViewTexturedBackgroundColor
- 8. Golangの通知センター
- 9. C++の通知センター
- 10. 通知センターとUIActionSheet
- 11. 通知-送信クーロン
- 12. Lionのサンドボックスアプリケーションで分散通知を送信する方法は?
- 13. 通知を通知センターに追加する方法
- 14. 通知を送信する
- 15. Rabbitmqで通知を送信
- 16. Firebaseで通知を送信
- 17. ブロードキャストプッシュ通知を送信
- 18. iOSプッシュ通知は通知センターに追加されません
- 19. 通知センターのキャッシュ設定?
- 20. 通知センターaddObserver()問題
- 21. 通知センターから再開
- 22. iPhone:通知センターの問題
- 23. 再送信docusignイベント通知
- 24. wso2is5.3:送信メール通知
- 25. WSO2送信回復通知
- 26. Laravel 5.3通知送信エラー
- 27. ios通知センターから同じ通知を削除する
- 28. のiOSは通知センターから通知を削除
- 29. プロットプロジェクト - 通知センターから通知を削除する
- 30. 通知センターで特定のアプリプッシュ通知を検出する
あなたがuserNotificationCenterを上書きする方法について詳しく説明することはできます? (申し訳ありません本当にこれに新しい:)) – haseo98
@ haseo98うん、私はちょうど私の答えに例を追加しました。 – alexjohnj
メソッドのapplicationdidfinishlaunchingセクションの次にエラーが発生しました。互換性のないタイプ 'id'のパラメータに 'AppDelegate * const __strong'を送信しています。何か案は? –
haseo98