这次主要讲解一下如何通过编写代码的方式来实现一个窗口程序, 当然这个程序十分的简单, 不过它演示了一些我们应该了解的东西,因此应该可以更好的帮助我们了解XCode和Interface builder为我们的开发工作做了哪些工作。
大部分讲解Cocoa编程的书都会用到Xcode和interface builder,这两个工具的结合是开发Cocoa应用程序的最佳选择, 但是当中往往隐藏了许多细节的东西,为了对Cocoa的运作方式有更好的了解,我决定用代码来实现一些Interface Builder中Nib文件实现的部分功能,以此来研究Cocoa的运作方式。
下面我们先看看这个最简单的HelloWin的源代码。
#import <Cocoa/Cocoa.h>
int main(int argc,char* argv[])
{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSApplication* app = [NSApplication sharedApplication];
//Create the main window
NSRect rc = NSMakeRect(0,800,600);
NSUInteger uiStyle = NSTitledWindowMask | NSResizableWindowMask | NSClosableWindowMask;
NSbackingStoreType backingStoreStyle = NSbackingStoreBuffered;
NSWindow* win = [[NSWindow alloc] initWithContentRect:rc styleMask:uiStyle backing:backingStoreStyle defer:NO];
[win setTitle:@"HelloWin Test"];
[win makeKeyAndOrderFront:win];
[win makeMainWindow];
//Start the event loop by calling NSApp run
[NSApp run];
[pool drain];
return 0;
}
编译命令如下:
gcc HelloWin.m -framework Cocoa -o HelloWin
所有的Cocoa程序都要连接Cocoa这个Framework,Cocoa Framework会自动引用其他需要的framework,比如Foundation Framework。这个编译指令生成的程序名字叫HelloWin,你可以通过在终端下执行下面的命令来看看这个程序的运行情况。
./HelloWin
窗口显示如下
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。