精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

iPhone應用程序 Say Hello實例操作 (下篇)

移動開發 iOS
本文介紹的是iPhone應用程序 Say Hello實例操作,以圖文的形式為友們介紹,剛方便與操作學習,我們先來看內容。

iPhone應用程序 Say Hello實例操作 (下篇)是本節介紹的內容,繼續 iPhone應用程序 Say Hello實例操作 (中篇)的內容開始介紹,先來看本節介紹。

實現視圖控制器

實現視圖控制器需要完成以下幾件事:

定義插座變量和動作方法,和Nib文件的視圖中的界面元素進行關聯

實現點擊按鈕后的相關邏輯——根據輸入的名字顯示相應的招呼語,判斷輸入的名字是不是為空是不是超長

用戶點擊鍵盤上的完成(Done)按鍵后,鍵盤會消失

建立連接

從業務角度來看,我們需要和界面的幾個元素建立關聯:

文本輸入框,獲取它的輸入文字

文本標簽,讓它顯示特定文字

按鈕,響應它的點擊事件

在Xcode4之前,Interface Builder和Xcode是分開的,一般是先在Xcode中定義好插座變量和動作方法,然后再在InterfaceBuilder中去建立界面元素和視圖控制器之間的連接,到Xcode4之后,Interface Builder和Xcode已經統一合并在了一起,所以這部分也有一些變化,Xcode4讓這部分工作變的更加容易一些,可以直接從視圖編輯界面拖動連接到代碼文件。

在我們正在開發的SayHello項目中,現在我們需要添加一個動作方法到視圖控制器,當界面上的按鈕被點擊時,它會發送一個sayHello:消息到視圖控制器,所以接下來要為按鈕創建一個sayHello:動作方法:

在Xcode中,選擇視圖控制器對應的Nib文件(RootViewController.xib)

顯示Assistant editoriPhone應用程序 Say Hello實例操作

讓Assistant顯示視圖控制器的頭文件(RootViewController.h)

iPhone應用程序 Say Hello實例操作

按住Control鍵,從Nib文件中的按鈕拖動到頭文件的方法聲明代碼區域

在彈出的面板中,將按鈕和視圖控制器之間的連接設置為動作(Action)

設置 Connection 為 Action

設置 Name 為 sayHello:

設置 Type 為 id

設置 Event 為 Touch Up Inside,也就是用戶在點擊按鈕,然后釋放后觸發

設置 Arguments 為 Sender 

iPhone應用程序 Say Hello實例操作

點擊Connect建立連接

通過上面的為按鈕添加動作的操作,完成了兩件事

添加了相應的代碼到視圖控制器的類中

頭文件中增加了如下代碼:

  1. - (IBAction)sayHello:(id)sender; 

并且實現文件中增加了相應的實現方法:

  1. - (IBAction)sayHello:(id)sender {  

IBAction 是一個特殊的關鍵字,它唯一的作用是告訴Interface Builder將某個方法當成目標/動作關聯中的動作。它被定義為void。

建立了按鈕到視圖控制器之間的連接。建立連接的意義,等同于在按鈕上調用 addTarget:action:forControlEvents: ,并且 target 是文件擁有者(File's Owner)也就是視圖控制器,action 是 sayHello: 方法,對應的事件是 UIControlEventTouchUpInside。

接下來要建立文本輸入框和文本標簽之間的連接:

在Xcode中,選擇視圖控制器對應的Nib文件(RootViewController.xib)

顯示Assistant editoriPhone應用程序 Say Hello實例操作

讓Assistant顯示視圖控制器的頭文件(RootViewController.h)

按住Control鍵,從Nib文件中的文本輸入框拖動到頭文件的方法聲明代碼區域

iPhone應用程序 Say Hello實例操作

在彈出的面板中,將文本輸入框和視圖控制器之間的連接設置為插座(Outlet)

設置 Connection 為 Outlet

設置 Name 為 nameTextField

設置 Type 為 UITextField 

iPhone應用程序 Say Hello實例操作

點擊Connect建立連接

通過上面的為文本輸入框添加插座變量的操作,完成了兩件事

添加了相應的代碼到視圖控制器的類中

頭文件中增加了如下代碼:

  1. @property (nonatomic, retain) IBOutlet UITextField *nameTextField; 

并且實現文件中增加了相應的實現方法:

在頂部增加了:

  1. @synthesize nameTextField; 

在 dealloc 方法中添加了

  1. [nameTextField release]; 

在 viewDidUnload 方法中添加了:

  1. [self setNameTextField:nil]; 

IBOutlet是一個特殊的關鍵字,它唯一的作用是通知Interface Builder將某個實例變量或者屬性當成插座變量。實際上,這個關鍵字被定義為空白,因此在編譯的時候它沒有任何作用。

建立了文本輸入框到視圖控制器之間的連接。建立連接的意義,等同于在視圖控制器上調用 setNameTextFiled: 方法,將文本輸入框作為參數傳入。

按照上面創建文本輸入框插座變量相同的方法,再建立用來顯示問候語的文本標簽的插座變量,并且將插座變量命名為 greetingLabel,類型為 UILabel。

實現邏輯代碼點擊視圖中的按鈕,它會向視圖控制器發送 sayHello: 消息,之后,視圖控制器會取得文本輸入框文字內容,根據內容來更新用來顯示問候語的文本標簽的內容。以下是RootViewController.m文件中 sayHello: 方法代碼的實現:

  1. - (IBAction)sayHello:(id)sender {  
  2. // 獲取文本輸入框內容,并存儲到變量中  
  3. NSString *nameString = nameTextField.text;  
  4. // 檢查輸入的名字是否為空,如果為空,彈出提示信息  
  5. if (nameString.length == 0) {  
  6. UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"名字不能為空" message:@"請輸入名字后,重新點擊按鈕。
  7. " delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];  
  8. [alertView show];  
  9. [alertView release];  
  10. greetingLabel.text = @"";  
  11. return;  
  12. }  
  13. // 檢查名字是不是超過16個字符,超過16個字符自動截斷  
  14. if (nameString.length > 16) {  
  15. nameString = [nameString substringToIndex:16];  
  16. }  
  17. // 根據輸入的名字,生成問候語  
  18. NSString *greeting = [NSString stringWithFormat:@"你好,%@!", nameString];  
  19. // 顯示問候語  
  20. greetinggreetingLabel.text = greeting;  

對于這個方法有幾點補充說明:

UIAlertView是專門用來顯示消息提示對話框

stringWithFormat:方法符串按照格式化字符串所指定的格式創建一個新字符串。%@表明此處應該使用一個字符串對象來代替。

隱藏鍵盤編譯并運行應用程序。在文本框中輸入“Jim”,點擊按鍵后,標簽顯示“你好, Jim!” 。但是選擇文本字段進行輸入,您會發現您沒有辦法表示已完成輸入,也沒有辦法消除鍵盤。在iPhone應用程序中,當一個允許文本輸入的元素變成第一響應者時,鍵盤就會自動顯示出來,而當該元素不再處于第一響應者狀態,鍵盤就會消失。我們不能直接向鍵盤發送消息,但是可以切換文本輸入元素的第一響應者狀態,利用該操作的附加效果來顯示或消除鍵盤。在應用程序中,當用戶點擊文本字段時,該控件就會變成第一響應者,因此鍵盤就會顯示出來。而當用戶點擊鍵盤中的Done按鍵時,希望鍵盤消失。

UITextFieldDelegate協議包含一個textFieldShouldReturn:方法,一旦用戶點擊Return按鍵,文本字段就會調用該方法(和按鍵的標題無關)。但將視圖控制器設置成文本輸入框(UITextField)的委托(Delegate),才可以實現該方法,在方法中向文本字段發送resignFirstResponder消息,這個消息的附加效果會讓鍵盤消失。

通過以下步驟設置文本輸入框的委托(delegate)連接:

在Xcode中,選擇視圖控制器對應的Nib文件(RootViewController.xib)

按住Control鍵,點擊文本輸入框

在彈出的半透明面板中,選中 delegate 后面的圓點,并拖動到 File's Owner

iPhone應用程序 Say Hello實例操作

接下來,來實現將RootViewController作為文本輸入框nameTextField的委托(delegate)

在視圖控制器的頭文件(RootViewController.h)中,在UIViewController后面添加<UITextFieldDelegate>:
 
@interface RootViewController : UIViewController<UITextFieldDelegate> {

這個申明表示視圖控制器RootViewController將支持UITextFieldDelegate協議

在視圖控制器的實現文件(RootViewController.m),實現 textFieldShouldReturn: 方法: 

  1. - (BOOL)textFieldShouldReturn:(UITextField *)textField {  
  2. if (nameTextField == textField) {  
  3. [nameTextField resignFirstResponder];  
  4. }  
  5. return YES;  

因為這個應用程序只有一個文本輸入框,所以其實不需要包含nameTextField == textField檢查。不過有些時候,對象可能會被設置成多個相同類型的對象的委托,這時候就需要來區分這些對象。

至此我們已經開發完成了整個應用程序。接下來將對它進行測試。

測試

這個應用程序相對簡單,我們設計幾個測試場景:

輸入正常的名字,例如“寶玉”,然后點擊按鈕,看看是不是會顯示“你好,寶玉!”

不輸入任何名字,點擊按鈕,看看是不是會有提示信息,要求輸入名字。

分別輸入16個、17個、20個字符的名字,看看名字是不是最多只能顯示前16個字符

點擊文本輸入框,顯示鍵盤,點擊鍵盤上的Done按鈕,看鍵盤是不是會隱藏

針對這個測試場景,逐一做一下功能的測試,看起來結果和我們預期的完全一樣。

iPhone應用程序 Say Hello實例操作 iPhone應用程序 Say Hello實例操作

小結:關于iPhone應用程序 Say Hello實例操作 (下篇)的內容介紹完了,希望本實例對你有所幫助。通過這樣一個簡單的項目,了解以下知識點: iOS開發常用的一些設計模式;iPhone程序的啟動過程;視圖控制器和Nib文件如何建立連接,這些知識對于iPhone開發和iOS開發來說,都是會經常用到的知識。

本文來自:http://www.cnblogs.com/dotey/archive/2011/06/09/2075954.html

責任編輯:zhaolei 來源: 博客園
相關推薦

2011-07-19 10:42:41

iPhone 應用程序 模型

2011-07-19 10:56:15

iPhone 控制器 視圖

2011-07-26 11:13:15

iPhone PXL

2011-07-26 16:43:59

iPhone Web 服務器

2011-07-21 10:47:37

iPhone Cocoa 委托

2011-07-26 13:23:14

iPhone 圖片 相冊

2011-07-19 09:58:36

2011-07-26 10:09:08

iPhone 多語言 國際化

2011-07-26 09:41:23

iPhone xcode Mac OS X

2011-07-20 15:58:58

iPhone 應用程序 生命周期

2010-08-27 10:41:41

iPhone核心應用程序

2011-07-27 17:30:40

iPhone Locate 定位

2011-07-19 14:36:32

iPhone

2011-07-21 15:56:32

iPhone 截屏

2011-08-12 14:54:45

iPhone委托

2011-08-05 13:49:53

iPhone 應用 開發

2011-07-05 17:07:46

Qt 插件 模塊

2011-07-06 16:25:10

iPhone 程序 調用

2011-08-10 09:31:33

開發iPhone應用程

2011-07-26 16:33:56

iPhone Delegate
點贊
收藏

51CTO技術棧公眾號

蜜臀av免费在线观看| 青青青视频在线播放| 色戒汤唯在线观看| 国产欧美日韩精品在线| 亚洲精品免费一区二区三区| 日本熟妇毛茸茸丰满| 精品成人影院| 欧美精品一区视频| 四季av一区二区| 国产福利在线免费观看| 国产丝袜美腿一区二区三区| 2019国产精品视频| 探花国产精品一区二区| 国产一区亚洲| 色多多国产成人永久免费网站 | 亚洲男人天堂2024| 激情在线观看视频| 校园春色亚洲色图| 一个色综合av| 亚洲精品视频一区二区三区| 神马午夜精品95| 国内精品免费**视频| 日韩av电影在线网| 国产福利久久久| 99久久婷婷| 亚洲欧美国产日韩天堂区| 一区二区在线免费观看视频| 亚洲电影有码| 欧美性猛交丰臀xxxxx网站| 在线观看17c| 婷婷五月在线视频| 久久精品亚洲国产奇米99| 国产伦精品一区二区三区视频黑人| 一级片视频网站| 久久久成人网| 3344国产精品免费看| 免费中文字幕视频| 亚洲色图插插| 久久精品中文字幕电影| 快灬快灬一下爽蜜桃在线观看| 日韩精选在线| 亚洲电影免费观看高清完整版在线| 国产精品区在线| 日韩高清在线| 在线精品亚洲一区二区不卡| 人妻熟女一二三区夜夜爱| 国产自产自拍视频在线观看| 亚洲成人在线观看视频| 青青在线视频免费观看| 18av在线播放| 一区二区三区中文字幕精品精品| 日本女人高潮视频| 黄网站在线免费| 亚洲免费观看视频| 真人做人试看60分钟免费| 天堂成人av| 亚洲五月六月丁香激情| www.av毛片| 草草在线视频| 欧美天堂在线观看| 无码人妻丰满熟妇区五十路百度| 51漫画成人app入口| 亚洲国产一区二区在线播放| 亚洲一区二区三区av无码| 久草成色在线| 精品久久久久久中文字幕| 黄色a级片免费| 激情久久99| 欧美日韩不卡在线| www.桃色.com| 国产劲爆久久| 亚洲色图25p| 国产传媒在线看| 亚洲成av人电影| 欧美精品久久久久久久久久| 国产精品久久久免费视频| 久久精选视频| 91香蕉亚洲精品| 蜜桃av噜噜一区二区三区麻豆| 成人免费视频网站在线观看| 久精品国产欧美| aaa日本高清在线播放免费观看| 国产精品美女久久久久久久久久久| 亚洲综合视频一区| 少女频道在线观看高清 | 欧美电影完整版在线观看| 亚洲欧美国产另类| 日韩一区二区不卡视频| 亚洲每日更新| 国产精品视频地址| 韩国av免费在线| 中文字幕欧美三区| 久久久久久久久久伊人| 美女露胸视频在线观看| 欧洲一区二区av| 绯色av蜜臀vs少妇| 国内精品伊人久久久| 美女久久久久久久久久久| 国产污污视频在线观看| 久草热8精品视频在线观看| 都市激情久久久久久久久久久| 欧美人体大胆444www| 亚洲视频中文字幕| 日韩欧美xxxx| 人人九九精品视频| 亚洲视频欧美视频| 精品小视频在线观看| 男女性色大片免费观看一区二区 | 成年网站在线播放| 精品久久97| 久久久精品久久久| 成人免费毛片视频| 成人免费av资源| 亚洲综合激情五月| 怡红院成人在线| 精品人在线二区三区| 少妇的滋味中文字幕bd| 在线亚洲精品| www 成人av com| 在线视频二区| 欧美视频一区在线| 国产精品无码一区二区三区| 韩国精品一区二区三区| 成人在线一区二区| av男人的天堂在线| 欧美性生交xxxxx久久久| 欧美图片自拍偷拍| 欧美伊人久久| 成人网欧美在线视频| 国产三级在线免费观看| 欧美日韩国内自拍| 国产一级伦理片| 亚洲视频精品| 成人永久免费| 成人免费高清观看| 精品久久久久一区二区国产| 天堂网avav| 国产真实乱子伦精品视频| 亚洲国产欧洲综合997久久| 亚洲欧美在线成人| 亚洲精品网址在线观看| 亚洲午夜18毛片在线看| 91免费小视频| 国产在线精品91| 在线精品自拍| 欧美精品videos另类日本| www.xxx国产| 一区二区三区在线视频免费观看| 无套白嫩进入乌克兰美女| 91精品蜜臀一区二区三区在线| 国产在线高清精品| 国产一二区在线| 欧美一区二区三区免费在线看 | 成人亲热视频网站| 国产精品剧情| 精品日韩欧美一区二区| 日韩av女优在线观看| 91在线视频免费观看| 国产91在线免费| 亚洲免费观看高清完整版在线观| 欧美一级视频一区二区| 精品无人乱码| 欧美日韩成人一区二区| 性欧美videos| 成人午夜在线播放| 99999精品视频| 欧美最新另类人妖| 69堂成人精品视频免费| ririsao久久精品一区| 亚洲激情视频在线观看| 欧美brazzers| 亚洲欧美乱综合| 亚洲欧美高清在线| 久久国产一二区| 在线看视频不卡| 91九色鹿精品国产综合久久香蕉| 97视频在线观看成人| 国产系列在线观看| 制服丝袜在线91| 国产在线视频在线观看| 国产亚洲一二三区| 中文字幕第一页在线视频| 亚洲每日在线| 亚洲一区二区三区涩| 国产精品xxxav免费视频| 国产成人av在线播放| 国产精品久久麻豆| 日韩电影中文字幕在线| 中文字幕在线观看国产| 亚洲专区一二三| gv天堂gv无码男同在线观看| 国产成人小视频| 精品日韩久久久| 精品成人久久| 一区二区三区四区五区视频| 成人精品动漫一区二区三区| 国产精品成人国产乱一区 | 日av在线播放| 欧美一二区视频| 少妇久久久久久久| 亚洲午夜免费视频| 成人三级视频在线观看| 91在线视频免费观看| 国产农村妇女精品久久| 鲁大师影院一区二区三区| 亚洲精品天堂成人片av在线播放| 亚洲美女久久| 国产伦精品一区二区三区视频孕妇 | 亚洲综合一区二区三区| 少妇视频在线播放| 91免费在线视频观看| 91精品人妻一区二区三区四区| 日本欧美在线观看| 日韩在线视频在线观看| 欧美一区不卡| 在线看成人av电影| 精品一区二区三区的国产在线观看| 国产精品对白一区二区三区| 亚洲成人高清| 国产精品久久久久久久久粉嫩av| 爱搞国产精品| 国内精品国产三级国产在线专| 久久99精品久久久久久野外| 国产亚洲视频中文字幕视频| 日本高清视频免费看| 日韩一区二区三区电影在线观看| 一区二区三区在线免费观看视频| 日韩欧美大尺度| 国产成人精品片| 亚洲mv大片欧洲mv大片精品| 久久免费在线观看视频| 一区二区三区日本| 黄色一级片中国| 亚洲精品久久久蜜桃| 三级av在线免费观看| 亚洲欧美在线高清| 欧美一区免费观看| 亚洲三级在线看| 国产老头老太做爰视频| 欧美激情一区二区三区蜜桃视频| 91网站免费视频| 国产性做久久久久久| 久久久久久亚洲中文字幕无码| 久久久国产午夜精品| 女女互磨互喷水高潮les呻吟| 久久久国产精品午夜一区ai换脸| 精品人妻一区二区三区视频| 久久亚洲一区二区三区四区| 欧美bbbbb性bbbbb视频| 91麻豆国产自产在线观看| 亚洲制服在线观看| 国产传媒一区在线| 中文字幕18页| 99精品久久免费看蜜臀剧情介绍| 亚洲精品日韩av| 亚洲一区视频在线播放| 国产综合久久久久影院| 超碰在线播放91| 日本女优在线视频一区二区| 亚洲一级免费在线观看| 国产做a爰片久久毛片| 超级砰砰砰97免费观看最新一期 | 疯狂欧美牲乱大交777| 日韩精品人妻中文字幕| 福利一区视频在线观看| 午夜精品免费观看| 欧美日韩成人在线一区| 亚洲AV无码一区二区三区少妇 | 在线日韩电影| 看av免费毛片手机播放| 日韩av在线发布| 亚洲一二区在线观看| 成人的网站免费观看| 麻豆国产精品一区| 中文字幕va一区二区三区| 日韩va亚洲va欧美va清高| 亚洲国产综合色| 久久精品偷拍视频| 欧美成人精品1314www| 色视频精品视频在线观看| 中文字幕日韩欧美在线| 最新国产露脸在线观看| 欧美亚洲第一页| 成人在线日韩| 久久av一区二区三区漫画| 成人高清av| 欧日韩免费视频| 蜜桃免费网站一区二区三区| 中国男女全黄大片| 国产日韩精品一区| 欧美成欧美va| 日本高清视频一区二区| www.五月激情| 一本色道久久综合狠狠躁篇怎么玩| 黄色免费在线看| 欧美一区二区视频97| 国产精区一区二区| 奇米影视首页 狠狠色丁香婷婷久久综合| 欧美va久久久噜噜噜久久| 男女私大尺度视频| 精品亚洲porn| 亚洲AV无码成人精品区明星换面| 一区二区三区免费观看| 中文字幕日韩三级| 亚洲激情 国产| 亚洲综合影视| 国产美女久久精品香蕉69| 爽爽窝窝午夜精品一区二区| 99中文字幕在线观看| 日韩vs国产vs欧美| 无码人妻aⅴ一区二区三区| 亚洲理论在线观看| 最近中文字幕av| 亚洲老头同性xxxxx| 神马午夜伦理不卡 | 久久黄色影视| 99久久久无码国产精品性色戒| 美女尤物久久精品| 波多野结衣一二三区| 亚洲三级小视频| 亚洲天堂手机版| 亚洲性生活视频| 亚洲第一av| 精品一区二区三区日本| 国产在线欧美| 国产成人精品综合久久久久99 | 在线视频免费观看一区| 亚洲美女自拍视频| 涩涩在线视频| 狠狠色综合一区二区| 亚洲激情午夜| 日本性生活一级片| 亚洲成人免费视频| 女人18毛片水真多18精品| 色与欲影视天天看综合网| 精品久久亚洲| 久久99国产精品一区| 国产在线视视频有精品| 三级黄色录像视频| 欧美欧美欧美欧美首页| 麻豆影视在线观看_| 成人在线中文字幕| 中文无码久久精品| 女人扒开双腿让男人捅| 一级日本不卡的影视| 隣の若妻さん波多野结衣| 韩国精品久久久999| 久久免费视频66| 国产精品宾馆在线精品酒店| 91在线一区二区三区| 亚洲欧美另类在线视频| 国产亚洲精品日韩| 亚洲精品555| 91手机视频在线| 国产福利91精品一区二区三区| 久久久久久久久毛片| 精品国产免费久久| 欧美freesex黑人又粗又大| 欧美精品一区二区三区四区五区 | 国产在线小视频| 国产精品亚洲一区二区三区| 亚洲欧洲日韩| 国产xxxx视频| 一本大道久久精品懂色aⅴ| 国产高清一级毛片在线不卡| 国产精自产拍久久久久久| 亚洲国产成人精品女人| 无码人妻丰满熟妇区毛片蜜桃精品 | 成人教育av| 一区二区不卡在线视频 午夜欧美不卡'| 麻豆成人在线观看| 久久精品视频日本| 亚洲天堂av在线免费| 亚洲二区av| 你真棒插曲来救救我在线观看| 久久婷婷色综合| 国产一区二区麻豆| 韩国v欧美v日本v亚洲| 欧美丝袜激情| 亚洲熟女一区二区三区| 日韩欧美中文字幕在线观看| 午夜在线免费观看视频| 国产精品国产三级国产专区53| 麻豆精品网站| 午夜免费激情视频| 日韩精品在线视频美女| 日本欧美在线| 成年人视频网站免费观看| 国产精品国产三级国产普通话99| 性做久久久久久久| 国产国语刺激对白av不卡| 中文字幕日韩一区二区不卡| 午夜理伦三级做爰电影| 日韩一卡二卡三卡国产欧美| 中文日产幕无线码一区二区| 国产系列第一页| 久久毛片高清国产| 超碰在线观看99| 国产精品视频成人| 性欧美xxxx大乳国产app|