第一個UI界面

IOS提供的UI組件很像C#,很多控件都拖動再綁定事件就可以了,但是畢竟系統很死,生成的東西比較死板,所以我們也要經常自己手動寫。在我們創建一個項目後,系統會自動生成一個視圖控制器(ViewController),如果你想操作視圖控制器上的組件,比如添加事件,那麼就應該讓視圖控制器持有界面上的組件,而主面板(Main.storyboard),Main.storyboard也就是我們程序進入後的第一屏。

讓控制器持有我們界面上的組件有很多種方法:

一、直接拖向控制器的頭文件

選中控件,按住command,然後拖向控制器的頭文件,這個時候彈出的對話框,根據自己需要如果是讓控制器持有當前組件,那麼就選擇outlet,如果綁定事件就選擇Action,然後再name中輸入自己屬性的名稱或者方法的名稱。

二、在頭文件中自己編寫屬性再綁定

如上圖所示自己也可以編寫屬性或者方法,但是注意有些屬性名可能和系統的衝突,剛開始我直接寫的是no,一直取不到值

@property (weak,nonatomic)IBOutlet UITextField *qqNo;

@property (weak, nonatomic) IBOutletUITextField *pwd;

-(IBAction)login;

 

如果是自己寫的屬性或者方法也可以在界面上通過選中控件,按住command鏈接你要指向的屬性或者方法


輸入完成退出鍵盤綁定的兩種方式:

一、由鍵盤喚起者也就是第一響應者分發第一響應者

我們在登錄的時候添加一個事件

-(void)login{

   NSLog(@"qq號碼是%@QQ密碼是:%@",self.qqNo.text,self.pwd.text);   

    //第一響應者:把鍵盤換出來的控件   

    //分發第一響應者

   // [self.qqNo resignFirstResponder];   

    //直接退出鍵盤(叫出鍵盤的控件必須是它的子控件或者是它本身)

    [self.viewendEditing:YES];    

}

二、通過UITextField的代理,讓ViewController實現UITextField的協議UITextFieldDelegate,監聽界面上的return key,還是通過選中控件,按住command把文本框的代理鏈接到ViewController控制器,也就是控制器充當了代理對象。


@protocol UITextFieldDelegate <NSObject>


@optional //非必須實現

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField;  //在開始編輯文本框的時候調用     // return NO to disallow editing.

- (void)textFieldDidBeginEditing:(UITextField *)textField;      //在開始編輯文本框的時候調用     // became first responder

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField;    //失焦的時候調用     // return YES to allow editing to stop and to resign first responder status. NO to disallow the editing session to end

- (void)textFieldDidEndEditing:(UITextField *)textField;      //失焦的時候調用        // may be called if forced even if shouldEndEditing returns NO (e.g. view removed from window) or endEditing:YES called


- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;   // return NO to not change text


- (BOOL)textFieldShouldClear:(UITextField *)textField;    //點清除的時候調用           // called when clear button pressed. return NO to ignore (no notifications)

- (BOOL)textFieldShouldReturn:(UITextField *)textField;        //監聽return key      // called when 'return' key pressed. return NO to ignore.


@end

在.m文件中實現該方法 當文本輸入框的return key被點擊的時候被調用

//把當前文本輸入框當做參數傳入

-(BOOL)textFieldShouldReturn:(UITextField *)textField{

    NSLog(@"調用...");

    //[self.view endEditing:YES];

    [textField resignFirstResponder];

    return YES;

}


模擬器home鍵快捷鍵:command+shift+h


發佈了53 篇原創文章 · 獲贊 3 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章