提问人:Nathaniel Perez 提问时间:1/17/2017 最后编辑:Nathaniel Perez 更新时间:1/18/2017 访问量:85
如何还原 keyWindow (NSView - Appkit)
How to restore keyWindow (NSView - Appkit)
问:
我有一些代码可以打开一个模式窗口(它本身由几个视图组成),并在我们单击它的任何位置时将其关闭。
以下是代码的某些部分:
int myFunc()
{
// Create views
NSPanel *panel = ...;
CustomNSTextView * textView = ... ;
CustomNSImageView * imageView = ...;
[view addSubview:textView];
[view addSubview:imageView];
[panel setContentView:view];
[[NSApplication sharedApplication] runModalForWindow:panel];
NSView* parentView = [view superview];
[[parentView window] makeFirstResponder:parentView];
[textView release];
[imageView release];
[view release];
[panel release];
}
@implementation CustomNSTextView : NSTextView
- (void) mouseDown:(NSEvent *)theEvent
{
#pragma unused(theEvent)
[[NSApplication sharedApplication] stopModal];
}
@implementation CustomNSImageView : NSImageView
- (void) mouseDown:(NSEvent *)theEvent
{
#pragma unused(theEvent)
[[NSApplication sharedApplication] stopModal];
}
错误是在窗口关闭后,应用程序(启动模式窗口)将不再接收任何键事件(而它仍然处于模式窗口打开状态)。 只有在我重新关注应用程序后,它才会再次接收关键事件。
请任何人给我一些想法,我在网上找不到相关的东西。
谢谢 纳 撒 尼尔
答: 暂无答案
评论
parentView
[[parentView window] makeFirstResponder:parentView];
尝试查看面板第一响应者。parentView
view