Xamarin.Macで通知センターを使用する

提供: MonoBook
ナビゲーションに移動 検索に移動

macOSの標準設定では3分以内に同じ通知を繰り返し送信するとポップアップ表示されない(右上の通知アイコンをクリックすると一覧にはいる)。 これを知らず下記のソースコードのAPIの呼び方が間違っていてポップアップ通知がされないバグだと思ってググってしまった。

            var userNotifycationCenter = NSUserNotificationCenter.DefaultUserNotificationCenter;

            // 通知がクリックされたとき
            userNotifycationCenter.DidActivateNotification += (sender, e) => {
                Console.WriteLine("DidActivateNotification: " + e.Notification);
            };

            // 通知されたとき
            userNotifycationCenter.DidDeliverNotification += (sender, e) => {
                Console.WriteLine("DidDeliverNotification");
            };

            // create
            var userNotification = new NSUserNotification();
            userNotification.Title = "タイトル";
            userNotification.Subtitle = "サブタイトル";
            userNotification.InformativeText = "本文";
            userNotification.UserInfo = NSDictionary.FromObjectsAndKeys(new[] { "val" }, new[] { "key" });

            // 10秒後に通知
            userNotification.DeliveryDate = NSDate.Now.AddSeconds(10);

            // 通知実行
            //userNotifycationCenter.DeliverNotification(un);
            userNotifycationCenter.ScheduleNotification(userNotification);