在一個應用程序中,如果用戶想要輸入一些信息的時候就可能要使用UITextField控件,來輸入內容。
基本使用:
1.創建
如果是使用xib拖拽的那麼UITextField高度默認爲30px,不可以調整。
如果是使用代碼創建的那麼可以隨意更改UITextField的高度。
UITextField *field = [[UITextField alloc]initWithFrame:CGRectMake(20, 200, 320, 60)];
2.屬性
常用屬性:
field.borderStyle = UITextBorderStyleRoundedRect;//邊框樣式,一般設置爲 UITextBorderStyleRoundedRect
/*UITextBorderStyleNone //無樣式
UITextBorderStyleLine //線性
UITextBorderStyleBezel //板式
*/
field.placeholder = @"佔位文字";
/*
UITextFieldViewModeNever //默認顯示沒有
UITextFieldViewModeWhileEditing //輸入時顯示有叉號
UITextFieldViewModeUnlessEditing //不輸入時顯示有叉號
UITextFieldViewModeAlways //一直顯示有叉號,
*/
field.secureTextEntry = YES;//設置輸入框變爲密碼框 每輸入一個字符就變成點
[field becomeFirstResponder];//成爲第一響應者
[field resignFirstResponder];//失去第一響應
field.keyboardType = UIKeyboardTypeURL;//鍵盤樣式
/*
UIKeyboardTypeDefault, // 默認狀態,支持所有字符
UIKeyboardTypeASCIICapable, // 可以輸入ASCII碼
UIKeyboardTypeNumbersAndPunctuation, // 數字和標點符號
UIKeyboardTypeURL, // 字母和url(com)
UIKeyboardTypeNumberPad, // 數字鍵盤
UIKeyboardTypePhonePad, // 數字帶+*# 電話鍵盤
UIKeyboardTypeNamePhonePad, // 電話鍵盤支持輸入人名
UIKeyboardTypeEmailAddress, // 字母帶@. 輸入電子郵件
UIKeyboardTypeDecimalPad NS_ENUM_AVAILABLE_IOS(4_1), // 數字鍵盤帶.
UIKeyboardTypeTwitter NS_ENUM_AVAILABLE_IOS(5_0), // 字母帶@#
UIKeyboardTypeWebSearch NS_ENUM_AVAILABLE_IOS(7_0), // 字母帶 前往 按鈕
UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, // 可以輸入ASCII碼 首字母大寫
*/
field.returnKeyType = UIReturnKeyDefault;//設置return鍵的類型
/*
UIReturnKeyDefault, //return鍵顯示默認狀態 return
UIReturnKeyGo, //return鍵顯示Go
UIReturnKeyGoogle, //return鍵顯示Search
UIReturnKeyJoin, //return鍵顯示Join 加入
UIReturnKeyNext, //return鍵顯示next 下一個
UIReturnKeyRoute, //return鍵顯示Route
UIReturnKeySearch, //return鍵顯示Search 搜索
UIReturnKeySend, //return鍵顯示Send 發送
UIReturnKeyYahoo, //return鍵顯示Search
UIReturnKeyDone, //return建顯示Done
UIReturnKeyEmergencyCall,
*/
field.keyboardAppearance=UIKeyboardAppearanceDefault;//設置鍵盤風格
/*
UIKeyboardAppearanceDefault //默認
UIKeyboardAppearanceDark //深灰
UIKeyboardAppearanceLight //高亮
UIKeyboardAppearanceAlert //石墨色
*/
不常用屬性:
field.text = @"設置文字";
field.textColor = [UIColor yellowColor];//設置字體顏色
field.font = [UIFont systemFontOfSize:24];//設置字體大小
field.textAlignment = NSTextAlignmentLeft;//文字位置,默認爲文字在左側
/*
NSTextAlignmentLeft //文字居左
NSTextAlignmentCenter //文字居中
NSTextAlignmentRight //文字在右側
*/
field.contentVerticalAlignment = UIControlContentVerticalAlignmentBottom;//內容文字的位置
/*
UIControlContentVerticalAlignmentCenter = 0,
UIControlContentVerticalAlignmentTop = 1,
UIControlContentVerticalAlignmentBottom = 2,
UIControlContentVerticalAlignmentFill = 3,
*/
field.autocapitalizationType = UITextAutocapitalizationTypeNone;//首字母是否大寫
/*
UITextAutocapitalizationTypeNone, //全部小寫
UITextAutocapitalizationTypeWords, //每個單詞(中間有空格)的首字母大寫
UITextAutocapitalizationTypeSentences, //第一個單詞的首字母大寫
UITextAutocapitalizationTypeAllCharacters, //全部大寫
*/
field.autocorrectionType = UITextAutocorrectionTypeNo;//是否糾錯
/*
UITextAutocorrectionTypeDefault, //默認
UITextAutocorrectionTypeNo, //不自動糾錯
UITextAutocorrectionTypeYes, //自動糾錯
*/
field.background = [UIImage imageNamed:@"XX.png"];//設置背景圖片 只有當設置外框類型爲UITextBorderStyleNone時纔有效
field.clearsOnBeginEditing = YES;//當再次編輯輸入框時 輸入框的內容就會被清空
field.adjustsFontSizeToFitWidth = YES;//設置爲YES時文本會自動縮小以適應文本窗口大小,默認是保持原來大小,而讓長文本滾動
field.clearsOnBeginEditing = YES;//當再次編輯輸入框時 輸入框的內容就會被清空
field.minimumFontSize = 15.0f;//設置輸入框字體最小值
field.disabledBackground = [UIImage imageNamed:@"XX.png"];//當它被禁用時,該圖像表示文本字段的背景外觀。
高級使用:
1.有時爲了讓用戶能更清楚的看到光標會讓光標往右側移動一些,做法是在UITextField的左側放一個UIView視圖
UIView *leftView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 30, 30)];
field.leftView = leftView;
field.leftViewMode = UITextFieldViewModeAlways;//leftViewMode是個枚舉類型
/*
UITextFieldViewModeNever //總是不顯示
UITextFieldViewModeWhileEditing //編輯的時候顯示
UITextFieldViewModeUnlessEditing //除了編輯時顯示
UITextFieldViewModeAlways //總是顯示
*/
2.左側有一個圖片,這個方法與第一種方法一致,在左側顯示一個UIImageView即可
3.在UITextField中左側與右側一樣只是把left變爲right
4.在UITextField中可以設置很多效果,但是一般都是使用代理來設置
//遵守代理協議 UITextFieldDelegate
field.delegate = self;//設置代理
#pragma mark - UITextFieldDelegate
//設置輸入框,是否可以被修改
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
return YES;
}
//開始編輯時獲得焦點時,執行該方法
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
}
//是否允許文本字段接觸,當編輯結束,文本字段會讓出first responder
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
return NO;
}
//文本框結束編輯以後會調用
- (void)textFieldDidEndEditing:(UITextField *)textField
{
}
//是否允許被修改,UITextField內容修改時調用
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
return YES;
}
//是否允許根據用戶請求清除內容
- (BOOL)textFieldShouldClear:(UITextField *)textField
{
return YES;
}
//是否允許在按下回車鍵時結束編輯
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
return YES;
}
類似文章推薦:http://blog.csdn.net/KevinQueen/article/details/50548723