Ste*_*555 7 macos xcode exc-bad-access objective-c nswindow
我在双击事件后调用以下代码,以便在鼠标位置打开一个小窗口。它工作正常,并且每次都会重新出现在新位置,但如果我先手动关闭窗口,则会收到 EXC_BAD_ACCESS 错误。
win = [[NSWindow alloc] initWithContentRect:frame
styleMask:(NSTitledWindowMask | NSClosableWindowMask)
backing: NSBackingStoreBuffered
defer:false];
[win makeKeyAndOrderFront:NSApp];
Run Code Online (Sandbox Code Playgroud)
并且窗口在调用上面代码的视图的接口中声明
@interface myView : NSView
{
NSWindow *win;
}
Run Code Online (Sandbox Code Playgroud)
如果相关的话,我正在使用 ARC,并且在调试器中我可以看到win在关闭之后以及尝试重新创建它之前它不是 nil,尽管它的 contentView 已变为 nil。
感谢您提供任何线索。
我在 Swift 中也遇到了同样的问题。为了解决这个问题,根据 Vin 的评论,我使用了window.isReleasedWhenClosed = false. 这可以防止窗口在关闭时被释放,从而允许您重新打开它而不会出现任何错误。
https://developer.apple.com/documentation/appkit/nswindow/1419062-isreleasedwhenclose
| 归档时间: |
|
| 查看次数: |
658 次 |
| 最近记录: |