iPhone SDK開發範例大全第四章之五03a-TextInput(5/15):2009年11月12b日星期四
iPhone SDK開發範例大全即iPhone Developer's CookBook的中文譯本,程式可由erica網站下載。第四章講AlertView,程式共有十五個。
本文講第5個程式03a-TextInput,CookBook 中文譯本4-4、145~147頁(訣竅4-3)。
(A)本程式在Naviagtion Bar上有"DO It" button,click這個button即出現一個Alert View,讓使用者輸入名字及URL,如下圖。
(B)達成pop up Alert View 的方法很簡單,下69行action:@selector(presentSheet)讓使用者click DoIt時跳至第21行的presentSheet。詳述presentSheet如下:
23行:UIAlertView *baseAlert = [[UIAlertView alloc ] .....產生UIAlertView 物件。
24行~28行:
- 24行~initWithTitle : (NSString *) title讓title出現在receiver的title bar,這裡的title是@"Enter information"。receiver是一個UIAlertView 物件
- 25行~message: (NSString *)message讓title下有更多說明,本例是@"Specify the name and URL "。
- 26行~delegate:(id) delegate,設立receiver的delegate。nil表示沒有,self表示receiver即為HelloController自己。
- 27行~cancelButtonTitle:(NSString *) cancelButtonTitle,cancel button的title,nil表示沒有cancel button,本例是@"Cancel"。本message相當於addButtonWithTitle:。
- 28行~otherButtonTitles:(NSString *)otherButtonTitles, ...,....表示可以有一串nil ended的(NSString *) ;本例是@"OK"。 本message相當於addButtonWithTitle:。
- return value:一個initialize好的Alert View。
29,30行[alert addTextViewWithValue ...]會讓畫面出現 name及URL輸入界面,使用者click後即可開如輸入。
33~38行設定name這UITextField的屬性。
41~46行設定URL這UITextField的屬性。
48行、[baseAlert show] : 用animation來顯示receiver。Alert View是以modal view方式顯現。
同時,因conform to UIAlertViewDelegate,加了13~19行這clickedButtonAtIndex protocal的message,當使用者click OK button時會跳入此程式。說明如下。
這個程式只是在16~17行printf出輸入的name及URL,所以在gdb中顯示出:
Jesse
18行[alertView release] release alertView。
receiver自動dismiss。