NSUserNotification - Маверикс и пользовательские изображения

В 10.9 NSUserNotification поддерживает новое свойство contentImage, которое позволяет использовать графику в самом уведомлении. Я действительно надеялся, что может быть способ узурпации уведомлений на экране уведомлений iTunes iTunes, поэтому он будет выглядеть так, как если бы пользовательский значок отправителя/пакета был настроен.

enter image description here

Но похоже, что свойство допускает только подмножество того, что я ищу, и свойство contentImage обрабатывает изображения только таким образом:

enter image description here

Любые идеи об обходном пути?

Ответ 1

NSUserNotification не делает костей о чрезвычайно замкнутой системе. Однако, если вы находитесь на рынке частных API-интерфейсов, NSConcreteUserNotification реализует метод под названием set_identityImage:. Передайте это действительное NSImage, и представленное уведомление изложит его содержимое точно так же, как этот баннер iTunes.

@interface NSUserNotification (CFIPrivate)
- (void)set_identityImage:(NSImage *)image;
@end

- (void)applicationDidFinishLaunching:(NSNotification *)notif {
    NSUserNotification *notification = [[NSUserNotification alloc] init];
    notification.title = @"Some Title";
    notification.subtitle = @"Some subtitle";
    [notification set_identityImage:[NSImage imageNamed:@"CF_Logo.png"]];
    [NSUserNotificationCenter.defaultUserNotificationCenter deliverNotification:notification];
}

Custom Banner