typedef enum {
//设置输入框的背景颜色,此时设置为白色
text.backgroundColor = [UIColor whiteColor];
//设置背景
//设置背景
//当输入框没有内容时,水印提示
//设置输入框内容的字体样式和大小
//设置字体颜色
//输入框中是否有个叉号,在什么时候显示,用于一次性删除输入框中的内容
typedef enum {
} UITextFieldViewMode;
//输入框中一开始就有的文字
//每输入一个字符就变成点
//是否纠错
typedef enum {
} UITextAutocorrectionType
//再次编辑就清空
//内容对齐方式
//内容的垂直对齐方式
//设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动
//设置自动缩小显示的最小字体大小
//设置键盘的样式
typedef enum {
UIKeyboardTypeNumberPad,
UIKeyboardTypePhonePad, 电话键盘
UIKeyboardTypeEmailAddre
UIKeyboardTypeDecimalPad
} UIKeyboardType;
//首字母是否大写
typedef enum {
} UITextAutocapitalization
//return键变成什么键
typedef enum {
} UIReturnKeyType;
//键盘外观
textView.keyboardAppearance=UIKeyboardAppearanceDefa
typedef enum {
UIKeyboardAppearanceDefa
UIKeyboardAppearanceAler
} UIReturnKeyType;
//设置代理
//把textfield加到视图中
//最右侧加图片是以下代码
typedef enum {
} UITextFieldViewMode;
//按return键键盘往下收
类要采用UITextFieldDelegate协议
text.delegate =self; 声明text的代理是我,我会去实现把键盘往下收的方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
return YES;
}
界面重写绘制行为
除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。以下方法都可以重写。
–
–
–
–
–
–
–
–
–
代替输入
inputView //代替标准的系统键盘
inputAccessoryView //编辑时显示在系统键盘或用户自定义的inputView上面的视图
委托方法
-
//返回一个BOOL值,指定是否循序文本字段开始编辑
}
-
}
-
//返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出first
}
- (void)textFieldDidEndEditing:(UITextField *)textField;{
}// 上面返回YES后执行;上面返回NO时有可能强制执行(e.g. view removed from window)
-
//当用户使用自动更正功能,把输入的文字修改为推荐的文字时,就会调用这个方法。
//这对于想要加入撤销选项的应用程序特别有用
//可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。
//要防止文字被改变可以返回NO
//这个方法的参数中有一个NSRange对象,指明了被改变文字的位置,建议修改的文本也在其中
}
-
//返回一个BOOL值指明是否允许根据用户请求清除内容
//可以设置在特定条件下才允许清除内容
}
-(BOOL)textFieldShouldReturn:(UITextField
//返回一个BOOL值,指明是否允许在按下回车键时结束编辑
//查一下resign这个单词的意思就明白这个方法了
}
通知
UITextField派生自UIControl,所以UIControl类中的通知系统在文本字段中也可以使用。除了UIControl类的标准事件,你还可以使用下列UITextField类特有的事件
UITextFieldTextDidBeginE
UITextFieldTextDidChange
UITextFieldTextDidEndEdi
当文本字段退出编辑模式时触发。通知的object属性存储了最终文本。
因为文本字段要使用键盘输入文字,所以下面这些事件发生时,也会发送动作通知
UIKeyboardWillShowNotifi
UIKeyboardDidShowNotific
UIKeyboardWillHideNotifi
UIKeyboardDidHideNotific
NIB中:
1、Text
2、Placeholder
3、Background
4、Disabled
5、接下来是三个按钮,用来设置对齐方式。
6、Border Style
7、ClearButton
8、Clear when editingbegins
9、Text Color
10、Font
11、Min FontSize
12、Adjust ToFit
接下来的部分用于设置键盘如何显示。
13、Captitalization
14、Correction
15、Keyboard
16、Appearance:
17、ReturnKey
18、Auto-enable ReturnKey
19、Secure
1.Alignment Horizontal
2.Alignment Vertical
3.用于返回一个BOOL值 输入框是否
实例 :
- #define
ALPHA @"ABCDEFGHIJKLMNOPQRSTUVWX YZabcdefghijklmnopqrstuv wxyz " - #define
NUMBERS @"0123456789n" - #define
ALPHANUM @"ABCDEFGHIJKLMNOPQRSTUVWX YZabcdefghijklmnopqrstuv wxyz0123456789 " - #define
NUMBERSPERIOD @"0123456789." -
-
- -
(BOOL)textField:(UITextField *)textField shouldChangeCharactersIn Range:(NSRange)range replacementString:(NSString *)string - {
- NSCharacterSet
*cs; - cs
= [[NSCharacterSet characterSetWithCharacte rsInString:NUMBERSPERIOD ] invertedSet]; //invertedSet 方法是去反字符,把所有的除了数字的字符都找出来 -
- NSString
*filtered = [[string componentsSeparatedByCha ractersInSet:cs] componentsJoinedByString :@""]; //componentsSeparatedByCha ractersInSet 方法是把输入框输入的字符string 根据cs中字符一个一个去除cs字符并分割成单字符并转化为 NSArray, 然后componentsJoinedByString 是把NSArray 的字符通过 ""无间隔连接成一个NSString字符 赋给filtered.就是只剩数字了. -
-
- BOOL
basicTest = [string isEqualToString:filtered]; -
if(!basicTest) -
-
{ -
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"提示" -
message:@"请输入数字" -
delegate:nil -
cancelButtonTitle:@"确定" -
otherButtonTitles:nil]; -
-
[alert show]; -
[alert release]; -
return NO; -
} -
- //
Add any predicate testing here - return
basicTest; - }
#define NUMBERS @”0123456789n”(这个代表可以输入数字和换行,请注意这个n,如果不写这个,Done按键将不会触发,如果用在SearchBar中,将会不触发Search事件,因为你自己限制不让输入n,好惨,我在项目中才发现的。)所以,如果你要限制输入英文和数字的话,就可以把这个定义为: #define kAlphaNum@”ABCDEFGHIJKLMNOPQRSTUVWX
UItextField UITextView 有关键盘的设置
autocapitalizationType
autocorrectionType
enablesReturnKeyAutomati
keyboardAppearance
keyboardType
returnKeyType
secureTextEntry
用户名输入框:
m_TF_username = [[UITextFieldalloc] initWithFrame:my_frame];
m_TF_username.borderStyle =UITextBorderStyleNone;
m_TF_username.clearButtonMode= UITextFieldViewModeWhile
m_TF_username.delegate =self;
m_TF_username.returnKeyType =UIReturnKeyNext;
m_TF_username.autocapitalizationType =UITextAutocapitalization
[m_TF_usernamebecomeFirstResponder];
密码输入框:
m_TF_password = [[UITextFieldalloc] initWithFrame:my_frame];
m_TF_password.borderStyle =UITextBorderStyleNone;
m_TF_password.clearButtonMode= UITextFieldViewModeWhile
m_TF_password.delegate =self;
m_TF_password.returnKeyType =UIReturnKeyGo;
m_TF_password.secureTextEntry=YES;