我是UITextField,我負責輸入欄位的角色,
讓使用者可以輸入資料。
但我需要能夠幫我處理使用者輸入資料的工作,只要符合UITextFieldDelegate的protocol協定,都可以接我的工作。
我繼承自UIControl,因此我擁有與使用者互動的基本能力。
讓使用者可以輸入資料。
但我需要能夠幫我處理使用者輸入資料的工作,只要符合UITextFieldDelegate的protocol協定,都可以接我的工作。
我繼承自UIControl,因此我擁有與使用者互動的基本能力。
第1步:建立一個名為"UITextField"的"Single View Application"專案
第2步:加入一個UILabel,並設立名為label的IBOutlet,以便接下來顯示UITextField的值。
第3步:拖拉UITextField至畫面中
- 4.1 對UITextField按右鍵,按任"New Referencing Outlet"右邊的圓點,並拖拉至ViewController類別中
- 4.2 於"Name"欄位輸入"textField",並按下"Connect"
- 4.3 確認textView Outlet建立完成
- 5.1 為"ViewController"加上"UITextFieldDelegate" protocol協定,於UIViewController後方加上"<UITextFieldDelegate>"
@interface ViewController : UIViewController<UITextFieldDelegate>
@property (strong, nonatomic) IBOutlet UILabel *label;
@property (strong, nonatomic) IBOutlet UITextField *textField;
@end
@property (strong, nonatomic) IBOutlet UILabel *label;
@property (strong, nonatomic) IBOutlet UITextField *textField;
@end
- 5.2 於"ViewController.m"檔中實作 "– textFieldShouldReturn:"方法,處理當使用者按下鍵盤中Return鍵的作業,而使用者按下Return表示輸入完畢。
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
//UITextFiled透過text屬性取得使用者輸入的資料,
//而後設定於UILabel上顯示。
[self.label setText:textField.text];
//textField透過resignFirstResponder方法
//釋放第⼀一主控權,如此使用者輸入的鍵盤就會消失
[textField resignFirstResponder];
return YES;
}
//UITextFiled透過text屬性取得使用者輸入的資料,
//而後設定於UILabel上顯示。
[self.label setText:textField.text];
//textField透過resignFirstResponder方法
//釋放第⼀一主控權,如此使用者輸入的鍵盤就會消失
[textField resignFirstResponder];
return YES;
}
第6步:將實作"UITextFieldDelegate"的ViewController(self),指派至UITextField的delegate屬性中,好將使用者於UITextField輸入資料的工作委派給ViewController(self)物件。當然,UITextField則會以"UITextFieldDelegate"protocol協定將輸入的工作交給ViewController。
- (void)viewDidLoad
{
[super viewDidLoad];
//將實作UITextFieldDelegate的ViewController(self),
//指派給UITextFiled的delegate屬性中,
//好將使用者對UITextFiled輸入資料的處理工作,
//委派給ViewController(self)物件。
self.textField.delegate = self;
}
[super viewDidLoad];
//將實作UITextFieldDelegate的ViewController(self),
//指派給UITextFiled的delegate屬性中,
//好將使用者對UITextFiled輸入資料的處理工作,
//委派給ViewController(self)物件。
self.textField.delegate = self;
}
第7步:執行選取UITextField,此時會出現輸入鍵盤,使用者即可透過鍵盤輸入資料。
檔案連結:UITextField.zip