Смена фокуса с NSTextField на NSOpenGLView? - PullRequest
2 голосов
/ 03 февраля 2011

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

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

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

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

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

Спасибо

David

Ответы [ 2 ]

3 голосов
/ 03 февраля 2011

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

2 голосов
/ 03 февраля 2011

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

Мне пришлось добавить строку:

[[NSApp keyWindow] makeFirstResponder: MyOpenGLView];

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

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

...