在下面的代码我正在初始化一个NSViewController
[一个NSResponder类],具有NSWindow
,一个NSOpenGLView
,呈现所述视图和尝试将NSViewController
作为窗户第一响应。NSOpenGLView,NSWindow&NSResponder类 - makeFirstResponder不工作
它不工作。我期待能够在下面的keyUp:
和keyDown:
方法中找到一个断点,但没有发生任何事情。
我错过了什么吗?
-(void)initwithFrame:(CGRect)frame
{
window = [[MyNSWindow alloc] initWithContentRect:frame styleMask:NSClosableWindowMask | NSTitledWindowMask backing:NSBackingStoreBuffered defer: YES ];
OpenGLView* glView = [[[OpenGLView alloc] initWithFrame:window.frame] autorelease];
window.contentView = glView;
[window makeFirstResponder:self];
[window makeKeyWindow];
[window display];
}
-(void)keyDown:(NSEvent*)theEvent
{
unichar unicodeKey = [ [ theEvent characters ] characterAtIndex:0 ];
unicodeKey = 0;
}
-(void)keyUp:(NSEvent *)theEvent
{
unichar unicodeKey = [ [ theEvent characters ] characterAtIndex:0 ];
unicodeKey = 0;
}
由于做这个职位,我曾尝试加入以下视图类: - (BOOL)acceptsFirstResponder { 返回YES; } 未影响行为。 –
@ BROK3NS0UL尝试类似 - (void)keyDown:(NSEvent *)theEvent {NSString * characters = [theEvent characters]; NSLog(@“Key:”,characters); } –