2011-11-14 2 views
0

모달 윈도우가 있습니다. 컨트롤러에서 나는 이것을한다 :NSFontManager setTarget : 모달 윈도우에서 작동하지 않습니다.

[[NSFontManager sharedFontManager] orderFrontFontPanel:self]; 

그리고 잘 동작한다. 글꼴 관리자는 내 컨트롤러에서 changeFont: 메서드를 호출합니다.

하지만 대신에이 코드를 작성하는 경우 :

[[NSFontManager sharedFontManager] setTarget:self]; 
[[NSFontManager sharedFontManager] setAction:@selector(qwe:)]; 
[[NSFontManager sharedFontManager] orderFrontFontPanel:self]; 

작동하지 않습니다. 글꼴 패널에서 글꼴을 선택하면 qwe : 메서드가 호출되지 않습니다. (I 모두가 잘 작동 모달 세션하지 않고 창을 표시 할 때)

그 이유는 윈도우가 모달 것입니다. 문제는 모달 윈도우에서 타겟 액션 변형이 작동하지 않는 이유입니다.

도움 주셔서 감사합니다.

답변

4

나는 이것을 또한 본다. 타겟과 액션을 설정한다고해서 액션 메소드가 호출되는 것은 아닙니다.

무슨 일을했던 것은 이것이다 :

@property (retain) NSFont *font; 

... 

- (void)changeFont:(id)sender 
{ 
    self.font = [sender convertFont:self.font]; 
} 

- (IBAction)actionSetFont:(id)sender 
{ 
    NSFontManager *fontManager = [NSFontManager sharedFontManager]; 
    [fontManager setDelegate:self]; 
    NSFontPanel *fp = [NSFontPanel sharedFontPanel]; 
    [fontManager setSelectedFont:self.font isMultiple:NO]; 
    [fp makeKeyAndOrderFront:self]; 
} 
: (1) 대리인이 아닌 대상, (2) 방법 changeFont 이름을 지정하고 (3) 작업을 설정하지 않는 설정
관련 문제