NSView (Просмотр содержимого) как firstResponder - PullRequest
1 голос
/ 09 июля 2011

У меня есть представление контента, которое я использую в своих настройках.Я использую метод для изменения шрифта NSTextView в моем приложении.

Это представление содержимого должно быть установлено как firstResponder для получения сообщений от моего метода changeTextFont:, но, поскольку это не окно, у него нет firstResponder.В результате он вообще не меняет шрифт текста ... у кого-нибудь есть обходной путь для этого?

Спасибо большое, ребята.

1 Ответ

3 голосов
/ 11 июля 2011

Я мог бы заставить пример проекта работать без указания [self window] в качестве первого респондента.Что я сделал:

  1. в (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
    
  2. Я переименовал changeFont: в changeMyFont::

    - (void)changeMyFont:(id)sender
    {
    

С этими изменениями шрифт корректно обновляется в примере представления содержимого.

Я не знаю, сработает ли это для вас, потому что в конце вы пытаетесь использовать этот код в другом контексте, но я надеюсь, что это сработает.Я бы посоветовал вам сначала попробовать изменить пример проекта, чтобы вы могли быть уверены в моем решении, а затем переместить его в свой проект, чтобы проверить, работает ли оно там.

...