Мне наконец-то удалось заставить NSScrollView работать в моей cocos2d-mac Xib.
Хитрость в том, что вам нужно программно наложить OpenGLView поверх основного представления NSScrollView (оставляя место для полос прокрутки), сначала настроив поддельное представление в качестве documentView scrollView, а затем удалив openGLView из родительского представления и добавив это снова (поэтому OpenGLView рисуется поверх ScrollView). Вы можете сделать это следующим образом:
appDelegate = [[NSApplication sharedApplication] delegate];
// Set up NSScrollView with dummy empty view as big as the layer
NSRect rect = NSMakeRect(0, 0, myLayer.width, myLayer.height);
NSView *view = [[NSView alloc] initWithFrame:rect];
appDelegate.scrollView.documentView = view;
[view release];
// Push OpenGLView back to front
[appDelegate.glView removeFromSuperview];
[appDelegate.splitLeftView addSubview:appDelegate.glView];
И затем, вы должны использовать события полос прокрутки, чтобы соответствующим образом обновить позицию myLayer.