objective-c - 如何以编程方式创建 Cocoa 窗口?

标签 objective-c cocoa nswindow

我的 Cocoa 应用需要一些小的动态生成的窗口。如何在运行时以编程方式创建 Cocoa 窗口?

到目前为止,这是我的非工作尝试。我看不到任何结果。

NSRect frame = NSMakeRect(0, 0, 200, 200);
NSUInteger styleMask =    NSBorderlessWindowMask;
NSRect rect = [NSWindow contentRectForFrameRect:frame styleMask:styleMask];

NSWindow * window =  [[NSWindow alloc] initWithContentRect:rect styleMask:styleMask backing: NSBackingStoreRetained    defer:false];
[window setBackgroundColor:[NSColor blueColor]];
[window display];

最佳答案

问题是你不想调用 display,你想调用 makeKeyAndOrderFrontorderFront 取决于是否您希望窗口成为关键窗口。您还应该使用 NSBackingStoreBuffered

此代码将在屏幕左下方创建无边框的蓝色窗口:

NSRect frame = NSMakeRect(0, 0, 200, 200);
NSWindow* window  = [[[NSWindow alloc] initWithContentRect:frame
                    styleMask:NSBorderlessWindowMask
                    backing:NSBackingStoreBuffered
                    defer:NO] autorelease];
[window setBackgroundColor:[NSColor blueColor]];
[window makeKeyAndOrderFront:NSApp];

//Don't forget to assign window to a strong/retaining property!
//Under ARC, not doing so will cause it to disappear immediately;
//  without ARC, the window will be leaked.

您可以为 makeKeyAndOrderFrontorderFront 设置适合您情况的发件人。

关于objective-c - 如何以编程方式创建 Cocoa 窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/314256/

相关文章:

ios - Soundcloud iOS SDK - 是否有注册 View Controller ?

iphone - iOS 的 Quartz Composer 替代品

objective-c - 以编程方式创建 View 和 subview

macos - Swift NSWindow 显示并立即消失

Swift:将按钮添加到底部栏 NSWindow

cocoa - 保留contentView并释放NSWindow

objective-c - 使用辅助 .h .m 文件向 NSManagedObject 添加其他属性

objective-c - iOS 中的 OpenCV 函数错误

macos - 以编程方式创建实体并将其添加到数组 Controller

objective-c - 在没有 doubleClick 的情况下为 IKImageView 调用 IKImageEditPanel 非常慢