gpt4 book ai didi

cocoa - C++下创建NSWindow

转载 作者:行者123 更新时间:2023-12-03 16:18:00 25 4
gpt4 key购买 nike

我做了一个简单的实验,我在Xcode中编写了以下代码:

int main(int argc, char** argv)
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSApplication* app = [[NSApplication alloc] init];
NSWindow* window = [[NSWindow alloc]
initWithContentRect: NSMakeRect(0, 0, 640, 480)
styleMask: NSTitledWindowMask | NSMiniaturizableWindowMask
backing: NSBackingStoreBuffered
defer: NO];
[window setTitle: @"New Window"];
[window center];
[window makeKeyAndOrderFront:nil];
[app run];
[pool release];
return 0;
}

它按预期运行,一个新的空窗口,但如果我使用命令行在终端下编译它:

$ g++ test.mm -framework Cocoa
$ ./a.out

在没有窗口的情况下,[应用程序运行]会变得轻而易举。

我做错了吗?为什么 Xcode 和命令行之间有不同的行为?有人可以告诉我如何在命令行中实现相同的行为吗?

提前致谢。

最佳答案

在 10.7.2 机器上获取您的代码并编译它对我来说工作正常...窗口显示(尽管在我的终端窗口后面并且不显示为正在运行的应用程序)。

如果您希望应用程序显示为在 Dock 中运行的进程,则必须将其正确打包在 .app bundle 中。如果您执行以下操作:

g++ test.mm -framework Cocoa
mkdir -p cli.app/Contents/MacOS
cp a.out cli.app/Contents/MacOS/cli

然后从命令行运行cli.app/Contents/MacOS/cli,您的进程将显示为正在运行的应用程序。

关于cocoa - C++下创建NSWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8680550/

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