重點屬性
在 Xcode 中使用 IB 給視圖拖上去一個文本框後,選中文本框,可以在Attribute Inspector中設置其各種屬性。
Attribute Inspector 分為三部分,分別是 Text Field、Control 和 View 部分。我們重點看看 Text Field 部分。
Text Field 部分有以下選項:
1、Text :設置文本框的默認文本。
2、Placeholder : 可以在文本框中顯示灰色的字,用於提示用戶應該在這個文本框輸入什麼內容。當這個文本框中輸入了數據時,用於提示的灰色的字將會自動消失。
3、Background :
4、Disabled : 若選中此項,用戶將不能更改文本框內容。
5、接下來是三個按鈕,用來設置對齊方式。
6、Border Style : 選擇邊界風格。
7、Clear Button : 這是一個下拉菜單,你可以選擇清除按鈕什麼時候出現,所謂清除按鈕就是出一個現在文本框右邊的小 X ,你可以有以下選擇:
7.1 Never appears : 從不出現
7.2 Appears while editing : 編輯時出現
7.3 Appears unless editing :
7.4 Is always visible : 總是可見
8、Clear when editing begins : 若選中此項,則當開始編輯這個文本框時,文本框中之前的內容會被清除掉。比如,你現在這個文本框 A 中輸入了 "What" ,之後去編輯文本框 B,若再回來編輯文本框 A ,則其中的 "What" 會被立即清除。
9、Text Color : 設置文本框中文本的顏色。
10、Font : 設置文本的字體與字號。
11、Min Font Size : 設置文本框可以顯示的最小字體(不過我感覺沒什麼用)
12、Adjust To Fit : 指定當文本框尺寸減小時,文本框中的文本是否也要縮小。選擇它,可以使得全部文本都可見,即使文本很長。但是這個選項要跟 Min Font Size 配合使用,文本再縮小,也不會小於設定的 Min Font Size 。
接下來的部分用於設置鍵盤如何顯示。
13、Captitalization : 設置大寫。下拉菜單中有四個選項:
13.1 None : 不設置大寫
13.2 Words : 每個單詞首字母大寫,這裡的單詞指的是以空格分開的字符串
13.3 Sentances : 每個句子的第一個字母大寫,這裡的句子是以句號加空格分開的字符串
13.4 All Characters : 所以字母大寫
14、Correction : 檢查拼寫,默認是 YES 。
15、Keyboard : 選擇鍵盤類型,比如全數字、字母和數字等。
16、Appearance:
17、Return Key : 選擇返回鍵,可以選擇 Search 、 Return 、 Done 等。
18、Auto-enable Return Key : 如選擇此項,則只有至少在文本框輸入一個字符後鍵盤的返回鍵才有效。
19、Secure : 當你的文本框用作密碼輸入框時,可以選擇這個選項,此時,字符顯示為星號。
技巧
下面來說兩個小技巧:
一、UITextField隱藏鍵盤
1.點擊鍵盤的return來隱藏鍵盤
這個方法需要在相應的.h文件文件中實現UITextFieldDelegate協議。並在.m文件中添加如下方法
復制代碼 代碼如下:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
2.點擊界面空白處來隱藏鍵盤
這個方法的實現主要是給當前的view增加點擊事件,並未點擊事件增加相應的處理方法,此處是為了隱藏鍵盤,所以我們可以在點擊事件對應的方法中讓UITextField放棄第一響應者。
復制代碼 代碼如下:
- (void)dismissKeyboard
{
NSArray *subViews = [self.view subviews];
for (id inputText in subViews) {
if ([inputText isKindOfClass:[UITextField class]]) {
if ([inputText isFirstResponder]) {
[inputText resignFirstResponder];
}
}
}
}
為當前的view增加點擊事件
復制代碼 代碼如下:
UITapGestureRecognizer *dismissKeyboardTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];
[self.view addGestureRecognizer: dismissKeyboardTap];
二、為內容增加校驗
復制代碼 代碼如下:
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
switch (textField.tag) {
case 100://name
{
NSLog(@"this is nameField");
//添加校驗name的代碼
break;
}
case 101://phone
{
NSLog(@"this is phoneField");
//添加校驗phone的代碼
break;
}
case 102://email
{
NSLog(@"this is emailField");
//添加校驗email的代碼
break;
}
default:
break;
}
return YES;
}