「Xamarin.Macで通知センターを使用する」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
(Administrator がページ「Xamarin.Macの通知センターを使用する」を「Xamarin.Macで通知センターを使用する」に移動しました)
imported>Administrator
 
1行目: 1行目:
 +
 +
[[macOS]]の標準設定では3分以内に同じ通知を繰り返し送信するとポップアップ表示されない(右上の通知アイコンをクリックすると一覧にはいる)。
 +
これを知らず下記の[[ソースコード]]のAPIの呼び方が間違っていてポップアップ通知がされない[[バグ]]だと思って[[ググって]]しまった。
 
<source lang="csharp">
 
<source lang="csharp">
 
             var userNotifycationCenter = NSUserNotificationCenter.DefaultUserNotificationCenter;
 
             var userNotifycationCenter = NSUserNotificationCenter.DefaultUserNotificationCenter;
26行目: 29行目:
 
             userNotifycationCenter.ScheduleNotification(userNotification);
 
             userNotifycationCenter.ScheduleNotification(userNotification);
 
</source>
 
</source>
 
[[macOS]]の標準設定では3分以内に同じ通知を繰り返し送信するとポップアップ表示されない(右上の通知アイコンをクリックすると一覧にはいる)。
 
これを知らず、上記の[[ソースコード]]のAPIの呼び方が間違っていてポップアップ通知がされない[[バグ]]だと思って[[ググって]]しまった。
 
  
 
[[category: Xamarin.Mac]]
 
[[category: Xamarin.Mac]]

2017年11月17日 (金) 02:15時点における最新版

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);