我有一些代码可以打开一个模式窗口(它本身由几个视图组成)并在我们单击它的任意位置时使其关闭。
这是代码的一部分:
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];
}
该错误是在窗口关闭后,应用程序(启动模态窗口)将不再接收任何键事件(虽然它仍然是模态窗口仍处于打开状态)。只有在我重新关注应用程序之后,它才会再次接收到关键事件。
请任何人给我一些想法,我在网上找不到相关的东西。
谢谢纳撒尼尔