文本字段的使用
文本字段是一個用戶介面元素,通過應用程式來獲取用戶輸入。
一個UITextfield如下所示:
重要的文本字段的屬性
- 在沒有任何用戶輸入時,顯示占位符
- 正常文本
- 自動更正型
- 鍵盤類型
- 返回鍵類型
- 清除按鈕模式
- 對齊方式
- 委託
更新xib中的屬性
可以在Utility area(實用區域,窗口的右側)更改xib在屬性查看器中的文本字段屬性。

文本字段委託
我們可以通過右擊 UIElement 介面生成器中設置委託並將它連接到檔的所有者,如下所示:

使用委託的步驟:
- 1.設置委託如上圖所示
- 2.添加委託到您的回應類
- 3.執行文本字段代表,重要的文本字段代表如下:
- (void)textFieldDidBeginEditing:(UITextField *)textField
- (void)textFieldDidEndEditing:(UITextField *)textField
實例
以下我們使用簡單的實例來創建UI元素
ViewController 類將採用UITextFieldDelegate,修改ViewController.h檔,如下所示:
將方法addTextField添加到我們的 ViewController.m 檔
然後在 viewDidLoad 方法中調用此方法
在ViewController.m中更新viewDidLoad,如下所示
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
//The custom method to create our textfield is called
[self addTextField];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)addTextField{
// This allocates a label
UILabel *prefixLabel = [[UILabel alloc]initWithFrame:CGRectZero];
//This sets the label text
prefixLabel.text =@"## ";
// This sets the font for the label
[prefixLabel setFont:[UIFont boldSystemFontOfSize:14]];
// This fits the frame to size of the text
[prefixLabel sizeToFit];
// This allocates the textfield and sets its frame
UITextField *textField = [[UITextField alloc] initWithFrame:
CGRectMake(20, 50, 280, 30)];
// This sets the border style of the text field
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.contentVerticalAlignment =
UIControlContentVerticalAlignmentCenter;
[textField setFont:[UIFont boldSystemFontOfSize:12]];
//Placeholder text is displayed when no text is typed
textField.placeholder = @"Simple Text field";
//Prefix label is set as left view and the text starts after that
textField.leftView = prefixLabel;
//It set when the left prefixLabel to be displayed
textField.leftViewMode = UITextFieldViewModeAlways;
// Adds the textField to the view.
[self.view addSubview:textField];
// sets the delegate to the current class
textField.delegate = self;
}
// pragma mark is used for easy access of code in Xcode
#pragma mark - TextField Delegates
// This method is called once we click inside the textField
-(void)textFieldDidBeginEditing:(UITextField *)textField{
NSLog(@"Text field did begin editing");
}
// This method is called once we complete editing
-(void)textFieldDidEndEditing:(UITextField *)textField{
NSLog(@"Text field ended editing");
}
// This method enables or disables the processing of return key
-(BOOL) textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
- (void)viewDidUnload {
label = nil;
[super viewDidUnload];
}
@end
運行該應用程式會看到下麵的輸出

委託調用的方法基於用戶操作。要知道調用委託時請參閱控制臺輸出。
