Как восстановить 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];
}
Ошибка заключается в том, что после закрытия окна приложение (которое запустило модальное окно) больше не получит никакого ключевого события (пока оно было, так как модальное окно все еще было открыто). Только после того, как я перефокусируюсь на приложении, оно снова получит ключевые события.
Пожалуйста, кто-нибудь дает мне некоторое представление, я не мог найти что-то актуальное в сети.
Спасибо Натаниэль