UITextField *TF = [[UITextField alloc] initWithFrame:CGRectMke(90,100,140,25)];//UITextField 初始化:
[self.window?addSubview:TF];//?添加到視圖
TF.textColor?=?[UIColor??redColor];//?輸入的字體顏色
TF.delegate?=?self;//設置代理,要在.h文件上添加代理??@interface??AppDelegate:UIResponder?
(代理的用處: 1.監聽那些不能通過addTarget監聽的事件!
2.主要用來負責在兩個對象之間,發生某些事件時,來傳遞消息或者數據)
TF.placeholder?=?@“請輸入密碼:?”;//?當沒有輸入內容時,有水印字體提示
TF.textColor?=?[UIColor??reColor?];//輸入字體的顏色
TF.secureTextEntry?=?YES;//輸入內容是否可見
TF.tag?=?101;//?給個tag值
TF.adjustsFontSizeToFitWidth?=?YES;//當輸入字符長度大于框架長度時,自動縮小字符以適應框架長度
TF.background?=?[UIImage?imageNamed:@“***.jpg”];//背景,當使用圖片為背景時,需要把TF.borderStyle設置為None
TF.backgroundColor?=?[UIColor?yellowColor];//當背景為顏色時,TF.borderStyle不能設為None
TF.borderStyle?=?UITextBorderStyleNone;//沒有樣式,直角邊框
UITextBorderStyleLine;//邊框為黑邊,直角邊框
UITextBorderStyleBezel;//有點陰影,直角邊框
UITextBorderStyleRoundedRect;//?圓角框
[TF?becomeFirstResponder];//?當渲染視圖后,TF自動成為第一響應者,彈出鍵盤,也可以在代理方法里進行
//?輸入框里的叉號,出現形式
TF.clearButtonMode?=?UITextFieldViewModeWhileEding;//?編輯時出現
UITextFieldViewModeNever;//從不出現
UITextFieldViewModeUnlessEditing;//?除了編輯時,其他時間都出現
UITextFieldViewModeAlways;//?一直都出現
TF.autocorrectionType?=?UITextAutocorrectionTypeNo;//不自動糾錯
UITextAutocorrectionTypeDefault;//默認
UITextAutocorrectionTypeYes;//自動糾錯
TF.clearsOnBeginEditing?=?YES;//重新點擊編輯時,是否清空上次輸入的內容,后面也有代理方法
//設置彈出的鍵盤的類型
TF.keyboardType?=?UIKeyboardTypeDefault;//默認鍵盤,支持所有字符
UIKeyboardTypeASCIICapable;//支持ASCII的默認鍵盤
UIKeyboardTypeNumbersAndPunctuation?;//標準電話鍵盤,支持+*#字符
UIKeyboardTypeURL;//URL鍵盤,支持.com按鈕?只支持URL字符
UIKeyboardTypeNumberPad;//數字鍵盤
UIKeyboardTypePhonePad;//電話鍵盤
UIKeyboardTypeNamePhnoePad;//電話鍵盤,也支持輸入人名
UIKeyboardTypeEmailAddress;//電子郵件鍵盤
UIKeyboardTypeDecimalPad;//數字鍵盤,有小數點
UIKeyboardTypeTwitter;//優化鍵盤
//首字母是否大寫
TF.autocapitalizationType?=?UITextAutocapitalizationTypeNone;//不自動大寫
UITextAutocapitalizationTypeWords,;//單詞首字母大寫
UITextAutocapitalizationTypeSentences;//句子的首字母大寫
UITextAutocapitalizationTypeAllCharacters;//?所有字母都大寫
//return鍵變成什么鍵
TF.returnKeyType?=UIReturnKeyDone;//標有Done的藍色按鈕
UIReturnKeyDefault;//默認?灰色按鈕,標有Return
UIReturnKeyGo;//標有Go的藍色按鈕
UIReturnKeyGoogle;//標有Google的藍色按鈕,用語搜索
UIReturnKeyJoin;//標有Join的藍色按鈕
UIReturnKeyNext;//標有Next的藍色按鈕
UIReturnKeyRoute;//標有Route的藍色按鈕
UIReturnKeySearch;//標有Search的藍色按鈕
UIReturnKeySend;//標有Send的藍色按鈕
UIReturnKeyYahoo;//標有Yahoo的藍色按鈕
UIReturnKeyYahoo;//標有Yahoo的藍色按鈕
UIReturnKeyEmergencyCall;//緊急呼叫按鈕
//UITextField的代理方法??(需要先設置代理)?? 注意是否要設置返回值
-?(BOOL)textFieldShouldBeginEditing:(UITextField?*)textField;//當用戶點擊到,并準備開始編輯內容時,使用方法,一邊是彈出窗口
-?(void)textFieldDidBeginEditing:(UITextField?*)textField;//當用戶開始編輯時,使用此代理方法
-?(BOOL)textFieldShouldEndEditing:(UITextField?*)textField;//當用戶準備結束編輯時,使用此代理方法
-?(void)textFieldDidEndEditing:(UITextField?*)textField;//當用戶結束編輯時,使用此代理方法
-?(BOOL)textField:(UITextField?*)textField?shouldChangeCharactersInRange:(NSRange)range?replacementString:(NSString?*)string
{
if?(range.location?>=?6)?{
return?NO;
}else
return?YES;
}//?當用戶使用自動更正功能,把輸入的文字修改為推薦的文字時,又或者限制輸入長度時,?就會調用這個方法。
-?(BOOL)textFieldShouldClear:(UITextField?*)textField;//當使用清除輸入內容功能時,使用此代理方法
-?(BOOL)textFieldShouldReturn:(UITextField?*)textField;//當點擊鍵盤里的Return收起鍵盤時,使用此代理方法
鍵盤的彈出及消失流程:
以UITextField的鍵盤彈出順序為例:
先是[textField becomeFirstResponsder]----------->
調用textField的代理事件(textFieldShouldBeginEditing)----------->
假如textFieldShouldBeginEditing返回YES,,調用代理事件textFieldDidBeginEditing,那么[textField
isFirstResponsder]返回YES------------>
鍵盤開始彈出,發送鍵盤出現通知 UIKeyboardWillShowNotification,當鍵盤完全出現在屏幕上時,發送UIKeyboardDidShowNotification
鍵盤消失順序(與彈出順序類似):
先是[textField resignFirstResponsder]----------->
調用(textFieldShouldEndEditing)--------------->
假如textFieldShouldEndEditing返回YES,調用textFieldDidEndEditing,[textField isFirstResponsder]返回NO,------------->
鍵盤消失,發送鍵盤消失通知 UIKeyboardWillHideNotification,當鍵盤完全消失在屏幕上時,發送UIKeyboardDidHideNotification