4
好吧,我已經檢查了S.O.和遍佈谷歌和我找不到什麼是錯我的代碼:NSFontManager selectedFont returns null
- (IBAction)selectFont:(id)sender
{
NSFontManager *fontManager = [NSFontManager sharedFontManager];
[fontManager setDelegate:self];
[fontManager setTarget:self];
NSFontPanel *fontPanel = [fontManager fontPanel:YES];
[fontPanel makeKeyAndOrderFront:sender];
}
- (void)changeFont:(id)sender
{
NSFontManager *fontManager = [NSFontManager sharedFontManager];
font = [fontManager selectedFont];
NSLog(@"%@",[fontManager selectedFont]);
}
字體面板彈出,但是當我選擇一種字體,控制檯的字體管理器的選擇字體返回(null)
。任何人都知道我錯過了什麼?
感謝
呵呵,我不知道爲什麼要轉換我現有的字體變量的作品......但沒關係。非常感謝! – David
一個常見的誤解是NSFontPanel被用來創建一個新的字體對象。從David Chisnall的'Cocoa Programming - Developers Handbook',「字體面板更復雜,它向字體管理器發送更新,這是Cocoa文本系統的核心部分,負責處理與字體轉換的交互。在字體面板中的一個屬性,它不會創建一個新的字體描述,字體面板和NSFontManager跟蹤已經對字體進行的修改,在第21行,我們通過發送convert:message字體管理器「。 –