Контексты OpenGL выбираются для каждого потока. NSOpenGLView скажет вам, какой контекст следует использовать для рисования в представлении (т. Е. В каком из них был вызван [context setView: view]), но не какой контекст в настоящее время выбран в потоке, выполняющем код. Это немного похоже на выбор пера / кисти для рисования в старых Windows.
Я понимаю, что вы хотите знать, если вы можете рисовать в поле зрения. Для этого проверьте, является ли текущий контекст тем, который возвращает NSOpenGLView, и, если нет, задайте для него значение.
Чтобы получить текущий контекст OpenGL для потока:
NSOpenGLContext* context = [NSOpenGLContext currentContext];
Чтобы установить текущее значение:
[context makeCurrentContext];
Чтобы очистить текущий контекст (т.е. не задавать текущий контекст):
[NSOpenGLContext clearCurrentContext];
В общем, см. Документы для NSOpenGLContext.