Изменение фокуса с NSTextField на NSOpenGLView?

Я разрабатываю интерфейс для моделирования OpenGL на Mac с помощью Interface Builder. Все материалы по OpenGL пишутся на C ++ (который я достаточно хорошо знаю). К сожалению, я понятия не имею о Objective-C.

В принципе, у меня есть несколько NSTextField, отображающих информацию об объекте, выбранном на экране. Используя эти текстовые поля, пользователь может манипулировать объектом на экране, а затем есть кнопки «Сохранить» и «Восстановить» (которые либо сохраняют новые значения, либо восстанавливают исходные).

У меня все это работает. Моя проблема в том, что когда я ввожу данные в NSTextField, «фокус» окон, кажется, остается на NSTextField (вокруг него остается синяя рамка).

Я использую клавиатуру для взаимодействия с элементами в NSOpenGLView, мне нужно передать фокус обратно в NSOpenGLView, когда я нажимаю кнопки «Сохранить» или «Восстановить».

Извините, если это очень простой вопрос

Спасибо

Дэйвид


person David    schedule 03.02.2011    source источник


Ответы (2)


Вы пробовали использовать NSWindow makeFirstResponder, чтобы ваш NSOpenGLView стал первым респондентом?

person Julio Gorgé    schedule 03.02.2011
comment
Спасибо, Хулио, последние несколько часов я смотрел на makeFirstResponer, но ничего не понял. Затем здесь ссылка, я нашел ссылку на вызов make ответчика из [NSApp keyWindow ], и мне удалось заставить его работать. Просто нужно было добавить «[[NSApp keyWindow] makeFirstResponder: MyOpenGLView];» в конце моей функции вызова кнопки. Спасибо. - person David; 03.02.2011
comment
Рад помочь, не забудьте отметить мой ответ как правильный! Это поможет вырастить мой электронный пенис и поможет будущим посетителям;) - person Julio Gorgé; 03.02.2011

Просто удалось заставить его работать.

Пришлось добавить строчку:

[[NSApp keyWindow] makeFirstResponder: MyOpenGLView];

до конца вызываемой функции, когда я нажимаю любую из своих кнопок.

(Спасибо Хулио за то, что указал мне в правильном направлении)

person David    schedule 03.02.2011