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

objective-c – 如何以编程方式创建Cocoa窗口?,第1张

概述我的Cocoa应用程序需要一些小的动态生成的窗口。如何在运行时以编程方式创建Cocoa窗口? 这是我到目前为止的非工作尝试。我看不到任何结果。 NSRect frame = NSMakeRect(0, 0, 200, 200);NSUInteger styleMask = NSBorderlessWindowMask;NSRect rect = [NSWindow contentRect 我的Cocoa应用程序需要一些小的动态生成的窗口。如何在运行时以编程方式创建Cocoa窗口?

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

NSRect frame = NSMakeRect(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];
解决方法 问题是,你不想调用显示,你想调用makeKeyAndOrderFront或orderFront取决于是否要窗口成为关键窗口。你也应该使用NSbackingStoreBuffered。

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

NSRect frame = NSMakeRect(0,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.

你可以使发送方的makeKeyAndOrderFront或orderFront适合你的情况。

总结

以上是内存溢出为你收集整理的objective-c – 如何以编程方式创建Cocoa窗口?全部内容,希望文章能够帮你解决objective-c – 如何以编程方式创建Cocoa窗口?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1047694.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存