一、常用
1、可以根據需要設置文本框的樣式(包括形狀、邊框顏色、背景等)。
(1)設置邊框樣式 textFiled1.borderStyle=UITextBorderStyleRoundedRect; UITextBorderStyleRoundedRect-圓角矩形,背景是白色,不再是透明的 UITextBorderStyleLine—-矩形,黑色邊框,透明背景 UITextBorderStyleBezel—-和上面類似,但是是灰色的邊框,背景透明
2、可以根據需要設置文字顯示樣式(包括輸入密碼時的密文顯示、文字橫向居中、縱向居中上下、輸入的文字是否首席木大寫、文字超過后是否縮小還是向右滾動等)。
(1)設置密文輸入,就是和輸入密碼時類似的顯示為小圓點 textFiled1.secureTextEntry=YES;
3、可以根據需要設置各種不同的鍵盤樣式(只有數字、只有字母等等)。
(1) 設置鍵盤樣式,比如銀行取款密碼只需要數字,有的輸入郵箱需要@等等 UIKeyboardTypeAlphabet和UIKeyboardTypeDefault類似,就是我們平時看到那樣,都是字母,然后有個按鍵可以切換符號 UIKeyboardTypeASCIICapable好像和上面差不多 UIKeyboardTypeDecimalPad,UIKeyboardTypeNumberPad都是數字,但前者多了一個“小數點”按鍵 UIKeyboardTypeEmailAddress-除了字母還有小數點和@出現 UIKeyboardTypeNamePhonePad-貌似正常 UIKeyboardTypePhonePad-電話鍵盤,不僅有數字還有*和#的那種 UIKeyboardTypeNumbersAndPunctuation-只有數字和標點符號 UIKeyboardTypeTwitter-除了字母還有@和#,這是微博的符號 UIKeyboardTypeURL-除字母,還有.com按鈕,方便輸入 UIKeyboardTypeWebSearch-主要區別在于return鍵變成了GO鍵 注意:如果是最xcode6下的模擬器的話,默認是不調出軟鍵盤的,按CMD+K可以調出,或者在菜單Hardware里地Keyboard里設置 textFiled1.keyboardType=UIKeyboardTypeWebSearch; (2)設置鍵盤外觀 UIKeyboardAppearanceDark和UIKeyboardAppearanceAlert都是把鍵盤背景變成半透明灰色區別不明顯 UIKeyboardAppearanceLight貌似和UIKeyboardAppearanceDefault一樣,沒啥區別 textFiled1.keyboardAppearance=UIKeyboardAppearanceAlert;
設置彈出視圖inputView即彈出的不是鍵盤而是這個視圖 設置的frame時,只有高度有用,其他x和y和寬都是無效的,寬是默認的整個鍵盤寬度 UIImageView *imgView1=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@”logo-60@3x.png”]]; imgView1.frame=CGRectMake(60, 60, 300, 300); textFiled1.inputView=imgView1;
5、還有return的樣式設置,可以設置為Google也可以設置為Go和Search等更形象的按鈕。
6、還有一個clearsOnBeginEditing是否設置清除按鈕也很常用。
7、還有用得比較多得估計是左右視圖,也就是我們常見的用戶名和密碼的前面還有一個小icon圖片表示用戶的“小人”和表示密碼的“鎖”的圖片,用左右視圖可以加載進來,當然最后要記得設置左右視圖模式為Always,不然默認是Never不顯示的。
二、代碼示例
- (void)viewDidLoad {//textfiled1本想是textField1的,但不影響UITextField *textFiled1=[[UITextField new];//此時textField1已存在,但因為是透明背景,所以看不見,但是點擊那塊地方會發現光標閃爍可寫//為了證明是透明背景而不是白色背景,我們可以設置self.view背景為紅色,看看textField1是白色還是透明色// self.view.backgroundColor=[UIColor redColor];textFiled1.frame=CGRectMake(10, 30, 300, 30);//設置邊框樣式textFiled1.borderStyle=UITextBorderStyleRoundedRect;//設置背景顏色,會覆蓋上面圓角矩形默認的白色背景textFiled1.backgroundColor=[UIColor purpleColor];//設置提示(默認)文字textFiled1.placeholder=@"請輸入您的密碼";//設置密文輸入,就是和輸入密碼時類似的顯示為小圓點textFiled1.secureTextEntry=YES;//設置左視圖,就是用戶名和密碼,有時候放個圖片的位置UIView *view1=[[UIView alloc]init];//x和y無效,x都是0,而y是根據高度來自動調整的。即高度如果超過textField則默認是textField高,如小于textField高度,則上下居中顯示。唯一有效的就是寬度view1.frame=CGRectMake(10, 500, 50, 10);view1.backgroundColor=[UIColor orangeColor];textFiled1.leftView=view1;//最重要的時:默認它是不顯示的即UITextFieldViewModeNever,我們可以設置永遠顯示UITextFieldViewModeAlways//UITextFieldViewModeUnlessEditing-一開始就有,點擊框,呃,貌似還有//UITextFieldViewModeWhileEditing-一開始沒有,點擊框就出現textFiled1.leftViewMode=UITextFieldViewModeAlways;//同樣,我們可以設置右視圖,當然也可以加載和圖片進來UIImageView *imgView2=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"logo-60@3x.png"]];imgView2.frame=CGRectMake(10, 500, 50, 10);textFiled1.rightView=imgView2;textFiled1.rightViewMode=UITextFieldViewModeAlways;//設置清除按鈕,就是那個叉叉X,一點擊整個輸入框的文字全部刪除重新輸入的那個X(我們先注釋掉不讓右視圖顯示,來查看效果)//其實我們在寫clearButtonMode是它又提示說這是一個UITextFieldViewMode類型,所以也是和上面一樣textFiled1.clearButtonMode=UITextFieldViewModeWhileEditing;//再次編輯時是否清空內容,這個除特定場景外很少用,會讓用戶抓狂的//當然為了模擬再次編輯,我們需要鼠標點到其他地方然后再點回來,所以再創建一個textFieldtextFiled1.clearsOnBeginEditing=NO;//這個clearsOnInsertion貌似點擊回去再次編輯時不清楚,但是只要一輸入內容就會清除之前的textFiled1.clearsOnInsertion=YES;UITextField *textField2=[[UITextField alloc]init];textField2.frame=CGRectMake(10, 80, 300, 100);textField2.borderStyle=UITextBorderStyleRoundedRect;[self.view addSubview:textField2];//我們用上面創建的textField2來做如下//縱向對齊方式,默認是居中//UIControlContentVerticalAlignmentCenter居中,所以Top、Bottom就是居上居下。Fill貌似和Top差不多textField2.contentVerticalAlignment=UIControlContentVerticalAlignmentFill;//當然還有橫向對齊//也有左中右和Fill四種,但是貌似沒看到什么效果,可能對文字無效,因為有專門的針對文字的設置textField2.contentHorizontalAlignment=UIControlContentHorizontalAlignmentRight;//設置文字對齊方式//同樣我們輸入textAlignment時有提示是NSTextAlignment類型,有好幾種,不細講textField2.textAlignment=NSTextAlignmentCenter;//設置調整文字大小以適配寬度(即輸入不下時縮小文字,實在縮小不了了,就向后滾動),默認是向右滾動的textField2.adjustsFontSizeToFitWidth=YES;//設置最小字號,和上面有關,即小于這個字號的時候,我就不縮小了,直接向右滾動textField2.minimumFontSize=2;//設置字母大小樣式,輸入autocapitalizationType時有提示是UITextAutocapitalizationType類型//UITextAutocapitalizationTypeAllCharacters-所有字母大寫(用鍵盤輸入的話發現失效,需要用軟鍵盤輸入才有效,以下同理)//UITextAutocapitalizationTypeWords-單詞首字母大寫//UITextAutocapitalizationTypeSentences-句首字母大寫textField2.autocapitalizationType=UITextAutocapitalizationTypeSentences;//設置return樣式,有Done/Go/Next/Join/Google/Search/Yahoo/EmergencyCall/Send等,除了默認外,其他的按鈕都是藍顏色背景textField2.returnKeyType=UIReturnKeyEmergencyCall;[self.view addSubview:textFiled1];[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.}三、代理方法:
1、監聽鍵盤刪除事件: 在代理方法中: - (BOOL)textField:(UITextField )textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString )string; 當輸入內容時,range.length = 0,string.length = 1; 當刪除內容時,range.length = 1,string.length = 0; 通過判斷string的長度是否大于0就可以確定當前的操作是輸入還是刪除。
ios開發,怎使用代碼或者其他方式控制切換鍵盤現在視圖中有兩個文本框,分別用來輸入文字與數字如
標記你對應的文本框tag,在將要編輯文本框的方法中判斷tag值。 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; 根據對應的tag設置不同的鍵盤類型