2012-03-14 3 views
1

면책 조항 : ObjectiveC을 처음 접했을 때 앱 구조에 근본적인 오류가있을 수 있으므로 목표를 달성 할 수있는 더 좋은 방법이 있는지 알려 주시기 바랍니다.NSView 외부의 알림은 어떻게 받습니까?

나는 Dropbox와 같은 상태 표시 줄에 앉아있는 앱을 만들려고합니다. 알림을 받아야합니다. 지금 당장 알림이 작동하지만 응용 프로그램의 창에있는 NSView에 구현했습니다. 나는 창 응용 프로그램 (라 Dropbox)을 얻을 수 있도록 창을 제거하고 싶습니다. 창을 제거하면 내가 만든보기가 제거 된 다음 내 응용 프로그램의 알림 수신 기능이 제거됩니다.

#import "test.h"  
@implementation test 

- (id) initWithFrame:(NSRect)frameRect 
{ 
    self = [super initWithFrame:frameRect]; 
    ... 
    [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(windowChangeNotification:) name:NSWorkspaceDidActivateApplicationNotification object:nil]; 
    return self; 
} 

- (void)windowChangeNotification:(NSNotification *)note 
{ 
    ... 
} 

을 그리고 테스트는 NSView의입니다 : : 그냥 내가 가난이 설명하고있어 경우에

, 내가받을거야 알림은 다음과 같이 수신

@interface appTracker : NSView { 
    appTrackerDB * eventDB; 
} 

가 어떻게 알림을받을 수 있습니다 창문이 없다면? 아니면보기없이 알림을받을 수있는 방법이 있습니까?

추가 정보 : 상태 표시 줄 UI 구성 요소를 this 자습서와 비슷한 NSMenu로 구현하고 있습니다.

나는 거기에 확신하지만 나는 문학에서 길을 잃었다.

도움 주셔서 감사합니다.

답변

0

Objective-C의 모든 개체는 알림을받을 수 있으므로이 코드를 AppDelegate에 던지거나 적절할 경우 어쩌면 일부 모델 클래스에 던져 넣으십시오.

는 :

+0

가 좋아 내가 처음에 이해하지 못했다 (BTW 클래스 이름은 관례 ObjC에서 대문자로 시작)하지만 몇 가지와 주변 연주 후, 나는 그것을 알아 냈어. 날 올바른 방향으로 밀었 잖아. 감사! – user1267383

관련 문제