在 Lion 10.7 上使用 ARC 以编程方式创建并打开 NSWindow

2024-01-01

我不知道如何在没有笔尖的情况下分配和打开一个新的 NSWindow 。

NSRect frame = NSMakeRect(100, 100, 200, 200);
NSUInteger styleMask =    NSBorderlessWindowMask;
NSRect rect = [NSWindow contentRectForFrameRect:frame styleMask:styleMask];
NSWindow * window =  [[NSWindow alloc] initWithContentRect:rect styleMask:styleMask backing: NSBackingStoreBuffered    defer:false];
[window setBackgroundColor:[NSColor blueColor]];
[window makeKeyAndOrderFront: window];

上面的代码取自该线程如何以编程方式创建 Cocoa 窗口? https://stackoverflow.com/questions/314256/how-do-i-create-a-cocoa-window-programmatically


如果您使用 ARC,那么除非您对窗口有强引用,否则它将在引用它的最后一条语句之后立即释放。

ARC 改变了您思考对象的方式,从保留/释放模型到所有权模型。如果没有什么东西拥有你的window变量,它就会消失。

有多种方法可以获取窗口的所有权。您可以使用以下命令将窗口设置为实例变量或类中的属性strong关键字,或者您可以使用__strong当您在代码中声明变量时使用限定符。

有关 ARC 的更多信息,请访问LLVM编译器站点 http://clang.llvm.org/docs/AutomaticReferenceCounting.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Lion 10.7 上使用 ARC 以编程方式创建并打开 NSWindow 的相关文章

随机推荐