Interface Builder制作Hello World教程
Interface Builder制作Hello World教程是本文要介紹的內容,主要介紹如何用iPhone SDK Beta 2以及Interface Builder制作iPhone版Hello World。不多說,我們先來看詳細內容。
蘋果已經(jīng)為我們放出了最新的iPhone SDK Beta 2,還附帶了一個超牛的Interface Builder。不拿它做點什么,蘋果迷是不會罷休的??墒翘O果比較不厚道的是,沒有太多地方提及怎么把Interface Builder和iPhone SDK揉到一起的方法。
本文將教你如何制作一個簡單的Hello World。這個起步教學不同于任何你能看到的官網(wǎng)教學,同樣,他和iPhone例子里面附帶的HelloWorldClassic也完全不一樣。因為他是使用Interface Builder制作iPhone UI,而不是使用一大堆代碼創(chuàng)建按鈕、輸入框,等等等等。
在這個教學中,你會發(fā)現(xiàn)用IB+iPhone SDK開發(fā)一個簡單的iPhone應用程序的過程幾乎和開發(fā)Mac OS程序完全一樣。這個例子里我們使用了xib文件而不是nib去制作界面。
這個Hello World并沒有做太多事情,屏幕上只有一個按鈕和一個Label,按下按鈕,Label就會顯示Hello World! 就是這么簡單。而你同樣會發(fā)現(xiàn)代碼也超乎尋常的簡單,完全不同于你看到的其他iPhone SDK的例子。這就是最新的Interface Builder帶給我們的奇跡。這個教學假設你有那么一點點Mac開發(fā)的經(jīng)驗,不用多,但是如果一點都沒有的話我擔心你可能看不懂這篇文章。如果看不懂,沒關系,去看一下本站的其他蘋果開發(fā)的基礎文章,再回來看這篇。
演出開始了!
首先,你需要創(chuàng)建一個項目。我相信在這里截個圖告訴你怎么建立iPhone的項目是在侮辱你的智商,因為當你下載完2G的SDK大包,你要做的第一件事就是這個。因此讓我們轉到更重要的事情上:修改一下默認的代碼。
默認的項目建立后,它會幫你創(chuàng)建幾個文件,而且并沒有加入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];
同時系統(tǒng)會自動幫你建立一個MyView。我們要做的事情首先就是干掉這個MyView,因為有了它你只能寫一大堆創(chuàng)建按鈕、創(chuàng)建文字框的代碼才能實現(xiàn)我們想要的功能。你要做的事情是把上面這一大堆刪除,替換為下面這行:
- self.window = [[[NSBundle mainBundle] loadNibNamed:@"MainWindow" owner:self options:nil] objectAtIndex:0];
- [window makeKeyAndVisible];
拽進去一個按鈕和一個Label,其他的不用管。
打開Interface Builder,新建(New),選擇建立一個Cocoa Touch-> Window。
拽進去一個按鈕和一個Label,其他的不用管。
然后按command+S,保存,注意要保存到你剛才建立的項目目錄,取名為MainWindow。
Interface Builder就會聰明地問你,是不是要添加到項目里。當然,打上勾,選擇添加(Add)。
Build and Run,跑一下吧,你會看到在iPhone模擬器里,顯示出了你的窗口和你剛剛扔進去的按鈕和文字框。
接下來我們準備做點好玩的,按下按鈕,文字框就會變?yōu)镠ello 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里,添加一行:
按Command+S保存,我們再回到Interface Builder。
按住control鍵,你可以從MyUI Win里拖拽一條線到Label上,是不是開始和Mac的Cocoa程序類似了?拽上去,選擇showhello,也就是這個outlet。接下來選擇按鈕,在Inspector的Events里,你會看到一個叫做Touch Down的消息,拽住后面的圈,拽到MyUI Win上。跳出一個hello方法,選中它。
保存。我們的工作做完了。Build and Run,按下按鈕,你會發(fā)現(xiàn)Hello World顯示出來了。如果有問題,沒有顯示,那么回過頭來重新看一遍上面的文章,看看自己哪里做錯了。
如果你大致了解如何用XCode寫Mac程序,你會發(fā)現(xiàn)用iPhone SDK Beta2自帶的Interface Builder開發(fā)iPhone程序,幾乎就是和寫桌面程序沒什么兩樣。如果你閱讀本文發(fā)現(xiàn)不需要解釋,而且你已經(jīng)照做出來了,那么恭喜你,開發(fā) iPhone程序就是這么簡單。
- @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!"];
本文例子下載請到:http://www.mobpub.net/viewthread.php?tid=3335&page=1&extra=#pid3585
好了,先別忙運行,我們需要一個MainWindow才行。
小結:Interface Builder制作Hello World教程的內容介紹完了想,希望本文對你有所幫助!