mKa*_*ane 4 macos objective-c nswindow
我创建了一个 NSWindow
self.storeWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(100, 100, 800, 660) styleMask:NSWindowStyleMaskResizable|NSWindowListOrderedFrontToBack|NSWindowStyleMaskClosable backing:NSBackingStoreBuffered defer:false];
[self.storeWindow setDelegate:self];
Run Code Online (Sandbox Code Playgroud)
打开很好,关闭也很好。但是,如果我再次调用 if 甚至检查 nil ,它会因 EXC_BAD_ACCESS 崩溃。
我在标头中将其声明为字符串属性
@property (strong,nonatomic) NSWindow *storeWindow;
Run Code Online (Sandbox Code Playgroud)
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];
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
可以设置NSWindow\xe2\x80\x99sreleasedWhenClosed属性来更改默认行为,即在关闭窗口时释放窗口(除非它由窗口控制器拥有)。该属性可以在 Interface Editor\xe2\x80\x99s Attributes Inspector 中设置,或者以编程方式设置,例如:
\n\n[myWindow setReleasedWhenClosed:NO];\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1029 次 |
| 最近记录: |