NSWindow аварийно завершает работу после закрытия и повторного открытия - PullRequest
0 голосов
/ 18 июня 2019

Я создал NSWindow

self.storeWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(100, 100, 800, 660) styleMask:NSWindowStyleMaskResizable|NSWindowListOrderedFrontToBack|NSWindowStyleMaskClosable backing:NSBackingStoreBuffered defer:false];
                             [self.storeWindow setDelegate:self];

, который открывается нормально и закрывается нормально. Однако, если я позвоню, если еще раз даже проверить на ноль, он падает с EXC_BAD_ACCESS.

Я объявляю его как строковое свойство в заголовке

@property (strong,nonatomic) NSWindow *storeWindow;
      if (self.storeWindow.contentView == nil) {
                            self.storeWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(100, 100, 800, 660) styleMask:NSWindowStyleMaskResizable|NSWindowListOrderedFrontToBack|NSWindowStyleMaskClosable backing:NSBackingStoreBuffered defer:false];
                             [self.storeWindow setDelegate:self];
                        }
                        [self.storeWindow setBackgroundColor:[NSColor whiteColor]];
                        self.store = [[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 850, 640)];
                        [self.store loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:json[@"url"]]]];
                        [self.storeWindow.contentView addSubview:self.store];
                        [self.storeWindow makeKeyAndOrderFront:self.window];

Есть идеи?

1 Ответ

0 голосов
/ 18 июня 2019

NSWindow releaseWhenClosed свойство может быть установлено для изменения поведения по умолчанию, то есть для освобождения окна, когда оно закрыто (если оно не принадлежит контроллеру окна). Свойство может быть установлено в инспекторе атрибутов редактора интерфейса или программно, например:

[myWindow setReleasedWhenClosed:NO];
...