gpt4 book ai didi

objective-c - 在 Lion 10.7 上使用 ARC 以编程方式创建和打开 NSWindow

转载 作者:太空狗 更新时间:2023-10-30 03:35:42 24 4
gpt4 key购买 nike

我不知道如何在没有 nib 的情况下分配和打开一个新的 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];

上面的代码取自这个线程How do I create a Cocoa window programmatically?

最佳答案

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

ARC 改变了您需要考虑对象的方式,从保留/释放模型到所有权模型。如果没有任何东西拥有您的 window 变量,它将消失。

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

LLVM compiler site 中有更多关于 ARC 的信息.

关于objective-c - 在 Lion 10.7 上使用 ARC 以编程方式创建和打开 NSWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7198562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com