gpt4 book ai didi

xcode - 创建没有 NIB 文件的 Cocoa 应用程序

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

是的,我知道这违背了整个 MVC 原则!

但是,我只是想创建一个非常简单的应用程序 - 而且我已经基本实现了它。但是,我有一个问题......

我创建一个空项目,复制所有框架并设置build设置 - 我收到有关可执行文件或缺少可执行文件的错误。build设置看起来都很好,但它告诉我没有可执行文件 - 它将构建+运行良好。但是它不运行。也没有错误——它看起来运行得非常快而且干净!除非我尝试运行 GDB,它会礼貌地告诉我我需要先给它一个文件..

Running…  
No executable file specified.
Use the "file" or "exec-file" command.

所以我创建了一个 Cocoa 应用程序,删除了所有我不需要的东西(即 MainMenu.xib 文件..),现在我可以完美地编译我的代码。然而它死了,提示它是

"Unable to load nib file: MainMenu, exiting"

我已经浏览了项目符号,发现代码实际上严重依赖于 NIB 文件,即使您没有按代码方式接触它。 (我猜又是 MVC..)

是否有一种简单的方法可以编译仅您编写的代码,无需添加 NIB 文件,仅编译您编写的代码和添加的框架?我认为这将是一个空白项目,但我的经验告诉我不然?!

最佳答案

这是我在我的应用程序中使用的方法。抱歉,格式不对,希望你能看懂。我不知道如何关闭这里的自动格式化。

当然,这个示例中不会有功能正常的主菜单,对于我来说,在这样的帖子上编写的代码太多了:P - 抱歉,我们对此进行一些研究;)

这应该可以帮助您开始:

AppDelegate.h

@interface MyApplicationDelegate : NSObject <NSApplicationDelegate, NSWindowDelegate> {
NSWindow * window;
}
@end

AppDelegate.m

@implementation MyApplicationDelegate : NSObject
- (id)init {
if (self = [super init]) {
// allocate and initialize window and stuff here ..
}
return self;
}

- (void)applicationWillFinishLaunching:(NSNotification *)notification {
[window makeKeyAndOrderFront:self];
}

- (void)dealloc {
[window release];
[super dealloc];
}

@end

ma​​in.m

#import "AppDelegate.h"

int main(int argc, char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSApplication * application = [NSApplication sharedApplication];

MyApplicationDelegate * appDelegate = [[[MyApplicationDelegate alloc] init] autorelease];

[application setDelegate:appDelegate];
[application run];

[pool drain];

return EXIT_SUCCESS;
}

关于xcode - 创建没有 NIB 文件的 Cocoa 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2997333/

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