0

私はこのようなコードを持っています。

[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification];
[[NSUserNotificationCenter defaultUserNotificationCenter] setDelegate:self];

また、userNotificationCenter:shouldPresentNotification: を実装します。それは正常に動作します。でも。アプリのウィンドウがフォーカスされていない場合、このデリゲート メソッドは呼び出されず、通知は常に表示されます。

何か助けはありますか?

4

1 に答える 1

2

まず、メッセージを送信するにデリゲートを設定する必要があり-deliverNotification:ます。そうしないと、本来デリゲート メソッドがトリガーされない可能性があります。

第二に、のドキュメントでは-userNotificationCenter:shouldPresentNotification:、次のように述べています。

userNotificationCenter:shouldPresentNotification:

ユーザー通知センターがあなたの通知を表示しないことを決定したときにデリゲートに送信されます。

つまり、通知を表示しないことがすでに決定されている場合にのみ、このメソッドが呼び出されます。表示する必要があると判断した場合は、わざわざ尋ねることはありません。NSUserNotificationCenter

于 2014-01-10T10:41:41.190 に答える