Я мог бы заставить пример проекта работать без указания [self window]
в качестве первого респондента.Что я сделал:
в (void)changeTextFont:(id)sender
, я заменил утверждение:
[[self window] makeFirstResponder:[self window]];
на строки:
[[NSFontManager sharedFontManager] setAction:@selector(changeMyFont:)];
[[NSFontManager sharedFontManager] setTarget:self]; //-- this seems to be not mandatory, but I mention it because your case could be different
Я переименовал changeFont:
в changeMyFont:
:
- (void)changeMyFont:(id)sender
{
С этими изменениями шрифт корректно обновляется в примере представления содержимого.
Я не знаю, сработает ли это для вас, потому что в конце вы пытаетесь использовать этот код в другом контексте, но я надеюсь, что это сработает.Я бы посоветовал вам сначала попробовать изменить пример проекта, чтобы вы могли быть уверены в моем решении, а затем переместить его в свой проект, чтобы проверить, работает ли оно там.