を使おうとしていますNSUserNotificationCenter
。通知を正常に配信できます。ShouldPresentNotification
アプリがフォアグラウンドで実行されている場合でも、コールバックを使用してNSUserNotificationCenterDelegate
通知を表示しています。
私のマシンの1つを除いて、これはうまく機能します!
コードを最も基本的な例に落とし込みました。私のマシンはすべて 10.8.3 と Mono 2.10.12 を実行しています。私の 2008 Macbook Pro と同僚の 2012 rMBP では、すべて例外なく動作します。ただし、同じ 2012 rMBP では、アプリがフォアグラウンドにある場合、通知は表示されません。実際、このマシンでは、このマシンだけで、どのNSUserNotificationCenterDelegate
メソッドも呼び出されません。
通知は引き続きこのマシンで配信されることに注意してください。通知は機能します。アプリがフォアグラウンドにある場合は表示されません (デリゲート メソッドが呼び出されないため)。
どの設定や構成がこの動作を引き起こす可能性があるか、またはこの動作をデバッグするために使用できるメカニズムがあるかどうかについて誰かが洞察を持っている場合は、本当に感謝しています。
これが私のコードです:
UNCShouldPresentNotification ShouldPresent = (a, b) => { return true; };
// Shared initialization code
void Initialize()
{
NSUserNotificationCenter.DefaultUserNotificationCenter.ShouldPresentNotification = this.ShouldPresent;
}
partial void notify(NSObject sender)
{
DoNotify();
}
[Export("doNotify")]
private void DoNotify()
{
NSUserNotification notification = new NSUserNotification();
notification.Title = notificationText.StringValue;
NSUserNotificationCenter.DefaultUserNotificationCenter.DeliverNotification(notification);
}