program tip

Mountain lion 알림 센터에 알림 보내기

radiobox 2020. 12. 27. 10:32
반응형

Mountain lion 알림 센터에 알림 보내기


누군가 Cocoa 앱에서 알림 센터로 테스트 알림을 보내는 예제를 줄 수 있습니까? 예. 클릭하면NSButton


Mountain Lion의 알림은 두 클래스에서 처리됩니다. NSUserNotificationNSUserNotificationCenter. NSUserNotification실제 알림이며 속성을 통해 설정할 수있는 제목, 메시지 등이 있습니다. 생성 한 알림을 전달하려면 deliverNotification:NSUserNotificationCenter에서 사용 가능한 방법을 사용할 수 있습니다. Apple 문서에는 NSUserNotificationNSUserNotificationCenter 에 대한 자세한 정보가 있지만 알림을 게시하는 기본 코드는 다음과 같습니다.

- (IBAction)showNotification:(id)sender{
    NSUserNotification *notification = [[NSUserNotification alloc] init];
    notification.title = @"Hello, World!";
    notification.informativeText = @"A notification";
    notification.soundName = NSUserNotificationDefaultSoundName;

    [[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification];
    [notification release];
}

제목, 메시지가 포함 된 알림이 생성되고 표시 될 때 기본 사운드가 재생됩니다. 알림을 사용하여 할 수있는 작업은 이것뿐입니다 (예 : 알림 예약). 자세한 내용은 제가 링크 한 문서에 설명되어 있습니다.

한 가지 작은 점, 알림은 애플리케이션이 핵심 애플리케이션 인 경우에만 표시됩니다. 애플리케이션이 키인지 여부에 관계없이 알림을 표시하려면 YES를 반환하도록 NSUserNotificationCenter델리게이트 메서드 를 지정 하고 재정의 userNotificationCenter:shouldPresentNotification:해야합니다. 에 대한 문서는 여기NSUserNotificationCenterDelegate 에서 찾을 수 있습니다 .

다음은 NSUserNotificationCenter에 델리게이트를 제공 한 다음 애플리케이션이 키인지 여부에 관계없이 알림을 강제로 표시하는 예입니다. 애플리케이션의 AppDelegate.m 파일에서 다음과 같이 편집하십시오.

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    [[NSUserNotificationCenter defaultUserNotificationCenter] setDelegate:self];
}

- (BOOL)userNotificationCenter:(NSUserNotificationCenter *)center shouldPresentNotification:(NSUserNotification *)notification{
    return YES;
}

그리고 AppDelegate.h에서 클래스가 NSUserNotificationCenterDelegate 프로토콜을 준수 함을 선언합니다.

@interface AppDelegate : NSObject <NSApplicationDelegate, NSUserNotificationCenterDelegate>

참조 URL : https://stackoverflow.com/questions/11814903/send-notification-to-mountain-lion-notification-center

반응형