TinyGrowl リリース

Growl.framework なしで Objective-C から Growl に通知を送るライブラリ、TinyGrowl をリリースしました。

http://github.com/psychs/tinygrowl

他のアプリに組み込むプラグインから Growl に通知を送りたい場合などに使えると思います。(プラグインGrowl.framework をロードしてしまうと、アプリ本体や他のプラグインGrowl.framework を使えなくなってしまうので)

使い方は、いたって簡単です。

まずは初期化。

growl = [TinyGrowlClient new];
growl.delegate = self;
growl.allNotifications = [NSArray arrayWithObjects:@"Alert", @"Info", nil];

allNotifications には、Growl のプリファレンスに表示される notification の全種類を渡します。

通知を送るには、notifyWith... を呼べば ok です。

id context = @"test info context";
[growl notifyWithType:@"Info"
                title:@"Info title"
          description:@"Info description"
         clickContext:context];

sticky にしたい場合は、もう少しパラメータの多いほうのメソッドを呼びます。

id context = @"test alert context";
[growl notifyWithType:@"Alert"
                title:@"Alert Title"
          description:@"Alert description"
         clickContext:context
               sticky:YES
             priority:1
                 icon:nil];

ユーザが通知をクリックしたとき、あるいはタイムアウトして消えたときに、notifyWith... に渡した context を引数にしてコールバックメソッドが呼ばれます。

- (void)tinyGrowlClient:(TinyGrowlClient*)sender didClick:(id)context
{
    NSLog(@"clicked: %@", context);
}

- (void)tinyGrowlClient:(TinyGrowlClient*)sender didTimeOut:(id)context
{
    NSLog(@"timed out: %@", context);
}

Growl の通知をクリックしたときに、何かアクションを起こしたい場合に便利です。