教学:用iPhone SDK Beta 2及Interface Builder制作iPhone版Hello World

就在昨天,苹果大神为我们放出了最新的iPhone SDK Beta 2,还附带了一个超牛的Interface Builder。不拿它做点什么,苹果迷是不会罢休的。可是苹果比较不厚道的是,没有太多地方提及怎么把Interface Builder和iPhone SDK揉到一起的方法。

CocoaChina独家第一时间带你制作一个简单的Hello World。这个起步教学不同于任何你能看到的官网教学,同样,他和iPhone例子里面附带的HelloWorldClassic也完全不一样。因为他是使用Interface Builder制作iPhone UI,而不是使用一大堆代码创建按钮、输入框,等等等等。

在这个教学中,你会发现用IB+iPhone SDK开发一个简单的iPhone应用程序的过程几乎和开发Mac OS程序完全一样。这个例子里我们使用了xib文件而不是nib去制作界面。

这个Hello World并没有做太多事情,屏幕上只有一个按钮和一个Label,按下按钮,Label就会显示Hello World! 就是这么简单。而你同样会发现代码也超乎寻常的简单,完全不同于你看到的其他iPhone SDK的例子。这就是最新的Interface Builder带给我们的奇迹。这个教学假设你有那么一点点Mac开发的经验,不用多,但是如果一点都没有的话我担心你可能看不懂这篇文章。如果看不懂,没关系,去看一下本站的其他苹果开发的基础文章,再回来看这篇。

 

演出开始了!

首先,你需要创建一个项目。我相信在这里截个图告诉你怎么建立iPhone的项目是在侮辱你的智商,因为当你下载完2G的SDK大包,你要做的第一件事就是这个。因此让我们转到更重要的事情上:修改一下默认的代码。

默认的项目建立后,它会帮你创建几个文件,而且并没有加入xib文件。相信在SDK 2.0正式版中会自动加入的。默认的AppDelegate.m看起来是这个样子的:

 

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    // Set up content view

self.contentView = [[[MyView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];

[window addSubview:contentView];

// Show window

[window makeKeyAndVisible];

 

同时系统会自动帮你建立一个MyView。我们要做的事情首先就是干掉这个MyView,因为有了它你只能写一大堆创建按钮、创建文字框的代码才能实现我们想要的功能。你要做的事情是把上面这一大堆删除,替换为下面这行:

 

 

self.window = [[[NSBundle mainBundle] loadNibNamed:@"MainWindow" owner:self options:nil] objectAtIndex:0];

[window makeKeyAndVisible];

 

 

好了,先别忙运行,我们需要一个MainWindow才行。

 

打开Interface Builder,新建(New),选择建立一个Cocoa Touch-> Window。

 

拽进去一个按钮和一个Label,其他的不用管。

 

 

然后按command+S,保存,注意要保存到你刚才建立的项目目录,取名为MainWindow。

 

 

Interface Builder就会聪明地问你,是不是要添加到项目里。当然,打上勾,选择添加(Add)。

Build and Run,跑一下吧,你会看到在iPhone模拟器里,显示出了你的窗口和你刚刚扔进去的按钮和文字框。

 

接下来我们准备做点好玩的,按下按钮,文字框就会变为Hello World!

 

回到Interface Builder,选择刚才的窗口,打开Inspector,在Class里面,默认是UIWindow,把它改成你想取的名字,比如MyUIWin。

 

 

在Class Actions里面添加一个方法,比如hello: 别忘了后面的冒号。因为Objective-C的方法都是要有冒号的。在下面的Class Outlet里,点加号,添加一个outlet,用于表示我们的Label,比如取名为showhello。

 

这两件事情做完,我们需要把刚刚做的这些添加到项目里。选中你的MyUIWin窗口,在菜单里选择 Write Class… 保存,同样添加到项目中。

 

回到XCode,在MyUIWin.h里,把@interface MyUIWin :后面的一大堆注释改为UIWindow,在OOXXAppDeletegate.h里,添加一行:

 

@class MyUIWin;

 

然后把

 

    UIWindow *window;

以及

 

@property (nonatomic, retain) UIWindow *window;

 

改成

 

    MyUIWin *window;

 

@property (nonatomic, retain) MyUIWin *window;

 

回到MyUIWin.h,

#import <Cocoa/Cocoa.h> 改成 #import <UIKit/UIKit.h>,然后再把IBOutlet id showhello;改成IBOutlet UILabel* showhello;

 

 

 

接着打开MyUIWin.m,找到

 

- (IBAction)hello:(id)sender {

 

 

在里面增加一行:

 

    [showhello setText:@"Hello World!"];

 

 

 

按Command+S保存,我们再回到Interface Builder。

 

按住control键,你可以从MyUI Win里拖拽一条线到Label上,是不是开始和Mac的Cocoa程序类似了?拽上去,选择showhello,也就是这个outlet。接下来选择按钮,在Inspector的Events里,你会看到一个叫做Touch Down的消息,拽住后面的圈,拽到MyUI Win上。跳出一个hello方法,选中它。

 

 

保存。我们的工作做完了。Build and Run,按下按钮,你会发现Hello World显示出来了。如果有问题,没有显示,那么回过头来重新看一遍上面的文章,看看自己哪里做错了。

 

如果你大致了解如何用XCode写Mac程序,你会发现用iPhone SDK Beta2自带的Interface Builder开发iPhone程序,几乎就是和写桌面程序没什么两样。如果你阅读本文发现不需要解释,而且你已经照做出来了,那么恭喜你,开发iPhone程序就是这么简单。如果你阅读本文发现有很多不清楚的地方,那么你也许需要多读读苹果Cocoa开发的基础知识,再回来阅读本文。

 

本文的例子Cocoa China提供  下载  (20kb)

需要Leopard Mac OS X10.5.2, Intel Mac, XCode 3.1 Beta 2,iPhone SDK Beta 2 以上版本。

你可能感兴趣的:(教学:用iPhone SDK Beta 2及Interface Builder制作iPhone版Hello World)