//属性设置
UITextField* text = [[UITextField alloc] initWithFrame:CGRectMake(10, 50, 300, 30)];
text.borderStyle = UITextBorderStyleRoundedRect;//设置文本框边框风格
text.autocorrectionType = UITextAutocorrectionTypeYes;//启用自动提示更正功能
text.placeholder = @"Hello, I am Chelsea Wang";//设置默认显示文本
text.returnKeyType = UIReturnKeyDone;//设置键盘完成按钮,相应的还有“Return”"Go""Google"等
text.clearButtonMode = UITextFieldViewModeWhileEditing;
[text setBackgroundColor:[UIColor whiteColor]];
text.delegate = self;//设置delegate
//点击 UITextView 输入文字,光标都从最初点开始
- (void)textViewDidChangeSelection:(UITextView *)textView
{
NSRange range;
range.location = 0;
range.length = 0;
textView.selectedRange = range;
}
//如何限制文本框只能输入数字:
建立NSNumberFormatter的子类,增加这个方法,将formatter链接至文本框。
- (BOOL) isPartialStringValid: (NSString **) partialStringPtr
proposedSelectedRange: (NSRangePointer) proposedSelRangePtr
originalString: (NSString *) origString
originalSelectedRange: (NSRange) origSelRange
errorDescription: (NSString **) error
{
NSCharacterSet *nonDigits;
NSRange newStuff;
NSString *newStuffString;
nonDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
newStuff = NSMakeRange(origSelRange.location,
proposedSelRangePtr->location
- origSelRange.location);
newStuffString = [*partialStringPtr substringWithRange: newStuff];
if ([newStuffString rangeOfCharacterFromSet: nonDigits
options: NSLiteralSearch].location != NSNotFound) {
*error = @"不是数字";
return (NO);
} else {
*error = nil;
return (YES);
}
}
//按下Done按钮,键盘消失
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
//输入完成后按键盘上的done关闭键盘
首先在Interface Builder中选择TextFields,然后在Text Field Attributes中找到Text Input Traits,选择Return Key为done。OK
定义方法
- (IBAction) textFieldDoneEditing:(id)sender;//按下Done键关闭键盘
实现方法
//按完Done键(回车键)以后关闭键盘
- (IBAction) textFieldDoneEditing:(id)sender
{
[senderresignFirstResponder];
}
然后找到事件Did End On Exit,与textFieldDoneEditing关联,OK。
如果是数字键盘,没有done键怎么办呢,我们通过触摸背景关闭键盘
定义方法
- (IBAction) backgroundTap:(id)sender;//通过触摸背景关闭键盘实现方法
//通过触摸背景关闭键盘
- (IBAction) backgroundTap:(id)sender
{
[nameFiledresignFirstResponder];
[numberFieldresignFirstResponder];
}
然后选择背景的Touch Down事件,关联 backgroundTap