내 코코아 앱에서 글꼴 패널을 사용하려고하는데 changeFont : 메서드를 호출 할 수 없습니다.NSFontPanel changeFont가 호출되지 않았습니다.
나는 다른 응용 프로그램에서 제대로 작동했고 코드를 복사하여 붙여 넣었지만, 이상한 이유로 changeFont 메서드가 호출되지 않았습니다. 다음은 코드입니다 :
- (IBAction)onOpenFontPanelBtnClicked:(id)sender
{
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
NSString* theFontName = [defaults objectForKey:DefaultFontNamePrefKey];
NSFont* theFont = [NSFont fontWithName:theFontName size:12.0f];
NSFontManager* fontMgr = [NSFontManager sharedFontManager];
[fontMgr setTarget:self];
[fontMgr setAction:@selector(changeMyCustomFont:)];
NSFontPanel* panel = [fontMgr fontPanel:YES];
[panel setPanelFont:theFont isMultiple:NO];
[panel orderFront:self];
panel.enabled = YES;
NSLog(@"Font manager target: %@ (class: %@), action: %@", fontMgr.target, [fontMgr.target className], NSStringFromSelector(fontMgr.action));
}
- (void) changeMyCustomFont:(id)sender
{
NSLog(@"New font: %@", [[NSFontManager sharedFontManager] selectedFont]);
}
이 코드하는 것은 모달 창 (기본 설정 창) 내부 뷰 컨트롤러에서 호출되고 있으며, 글꼴 패널은 잘 열립니다. 그러나 대상과 액션을 수동으로 설정했지만 변경 사항은 없습니다.
응답기 체인과 관련된 문제입니까? 어떻게 해결할 수 있습니까? 보기 컨트롤러를 응답기 체인에 수동으로 추가해야합니까? 내가 어떻게 그럴 수 있니? 사전에
감사합니다!
나는 잠시 동안이 작업을 수행하지 않았지만 공유 글꼴 관리자에서 대상/작업을 설정하면 전체 프로세스에 대해 하나의 처리기 만있을 수 있습니다. 그건 나에게 맞는 것 같지 않아. – trojanfoe
의견을 보내 주셔서 감사합니다. 문제를 해결하는 동안 해당 코드를 추가했습니다. 따라서 이것은 제거 될 때도 작동하지 않습니다. – guitarflow