Как восстановить 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];
}

Ошибка заключается в том, что после закрытия окна приложение (которое запустило модальное окно) больше не получит никакого ключевого события (пока оно было, так как модальное окно все еще было открыто). Только после того, как я перефокусируюсь на приложении, оно снова получит ключевые события.

Пожалуйста, кто-нибудь дает мне некоторое представление, я не мог найти что-то актуальное в сети.

Спасибо Натаниэль

0 ответов

Другие вопросы по тегам