OS X 通知センターの使用
OS X アプリケーション開発 への移動
ローカル通知を使用すると、バックグラウンドのアプリケーションやアクティブでないアプリケーションから、そのアプリケーションにとって重要なイベントやそのアプリケーションに関連するイベントが発生したことを、ユーザーに通知することができます。 このトピックでは、OS X アプリケーションでローカル通知を使用する基本手順を説明します。
Mountain Lion(OS X 10.8)で通知機能と通知センターが追加されました。 これは、ローカル通知をスケジューリングしたり即座に表示できる iOS とよく似ています。
通知について
OS X には 3 種類の通知があります。
通知の種類 | 説明 | 表示例 |
---|---|---|
警告 |
Mac の右上隅に表示されます。警告はユーザーがアクションを起こすまで画面上に残ります。 |
|
バナー |
Mac の右上隅に短時間だけ表示され、その後、画面の右にスライドして消えます。 |
|
バッジ |
アプリケーション アイコンの右上に、数字の付いた赤いバッジが表示されます。 このバッジは、アプリケーション内にユーザーへの通知がいくつあるかを反映しています。
|
通知サービスへのアクセス
RAD Studio により、通知サービスに簡単にアクセスするための TNotificationCenter コンポーネントが用意されています。
Notification Service にアクセスするには、TNotificationCenter コンポーネントをフォームにドロップします。
- RAD Studio は、次のユニットを Delphi に追加しています:
uses
System.Notification;
- RAD Studio は、C++ のプロジェクト ヘッダー ファイルに以下の include 演算子を追加します。
#include <System.Notification.hpp>
OS X の通知センター
対処されていない通知はすべて、通知センターに含められます。画面上にポップアップ通知が表示されたけれどもユーザーがクリックしなかった場合には、その通知は通知センターに含められます。警告は、ユーザーが適切なアクションを実施するまで通知センターに残されます。
通知センターは、メニュー バーの右側にある をクリックするだけで、簡単に表示したり非表示にすることができます。ユーザーが通知センター内の通知をクリックすると、アプリケーションが開くかフォアグラウンドに出てきます。
通知は、ポップアップ バナーとして表示されることもあれば、アプリケーションがバックグラウンドで動作していたり非アクティブである場合には警告として表示されることもあります。 ユーザーは、これらの通知が OS X でどう示されるかを指定することができます。
- [システム環境設定 |通知]を開きます。
- 左側にあるアプリケーションを探して選択します。
- [なし]、[バナー]、[警告パネル]のいずれかを選択します。
- メモ: [なし]を選択すると、ポップアップ通知は表示されず、通知は直接通知センターに含められます。デフォルトでは、通知バナーがアプリケーションにより表示されます。
次のスクリーンショットは、通知センターの構成ウィンドウです。
通知の作成
アプリケーションで OS X のローカル通知を表示できるようにするには、TNotification クラス オブジェクトのインスタンスを作成する必要があります。 System.Notification.TNotificationCenter.CreateNotification メソッドにより、このインスタンスを作成することができます。
アプリケーションでローカル通知オブジェクトを作成したあと、その通知をオペレーティング システムにスケジューリングするか、すぐに表示することができます。 理想を言うと、ローカル通知は時間で動作するアプリケーションに向いています。 オペレーティング システムがいつ通知を配信するかを指定することができます。これを配信日(fire date)と呼びます。 また、スケジュールされた通知を繰り返すこともできます。
OS X アプリケーションに通知メッセージを含めるには:
- TNotification クラスのインスタンスを作成します。
- CreateNotification を使用して、通知を作成します。
- Name、AlertBody、FireDate の各フィールドを定義します。
- 通知をスケジューリングして通知センターに設定するには、TNotificationCenterclass クラスが TCustomNotificationCenter から継承している ScheduleNotification メソッドを使用します。
- スケジュールされた通知を繰り返し、それを通知センターに表示させるには、スケジュール通知を作成し、TNotificationCenter クラスの RepeatInterval プロパティを使用します。
- 通知をすぐに表示するには、TNotificationCenter クラスが TCustomNotificationCenter から継承している PresentNotification メソッドを使用します。
通知は、削除されない限り通知センターに残ります。
個別の通知メッセージは、TNotification オブジェクトの Name プロパティで識別できます。
通知を更新または削除するには:
- スケジュール設定された通知を更新するには、同じ名前(Name プロパティ)を持つ TNotificationCenter のインスタンスを引数にして ScheduleNotification メソッドをもう一度呼び出すだけです。
- 通知をキャンセルするには、使用した識別子を引数にして CancelNotification メソッドを呼び出します。
- すべての通知をキャンセルするには、CancelAll メソッドを呼び出します。