UITextField事件
来源:互联网 发布:40本网络禁书 下载 编辑:程序博客网 时间:2024/05/17 18:11
1.delegate
//设置textField是否允许编辑
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; // return NO to disallow editing.
//进入编辑状态
- (void)textFieldDidBeginEditing:(UITextField *)textField; // became first responder
//设置textField是否允许结束编辑
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField; // return YES to allow editing to stop and to resign first responder status. NO to disallow the editing session to end
//退出编辑状态(即便你设置了不允许结束编辑,在某些情况下也有可能退出编辑状态)
- (void)textFieldDidEndEditing:(UITextField *)textField; // may be called if forced even if shouldEndEditing returns NO (e.g. view removed from window) or endEditing:YES called
//监控是否改变当前输入的字符,yes为改变,no为默认不改变
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string; // return NO to not change text
//在点击clear按钮的时候进入,询问是否清除。返回NO为忽视清除按钮,不清除。
- (BOOL)textFieldShouldClear:(UITextField *)textField; // called when clear button pressed. return NO to ignore (no notifications)
//点击键盘return按钮的时候,回调此方法,设为NO的时候会忽视return按钮的操作
- (BOOL)textFieldShouldReturn:(UITextField *)textField; // called when 'return' key pressed. return NO to ignore.
2.notification
//类似textFieldDidBeginEditing
UIKIT_EXTERNNSString *const UITextFieldTextDidBeginEditingNotification;
//类似textFieldDidEndEditing
UIKIT_EXTERNNSString *const UITextFieldTextDidEndEditingNotification;
//
UIKIT_EXTERNNSString *const UITextFieldTextDidChangeNotification;
-(void)viewWillAppear:(BOOL)animated
{
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(notificationTextFieldValueChange:)name:UITextFieldTextDidChangeNotificationobject:txfEdit];
}
-(void)notificationTextFieldValueChange:(NSNotification *)notification
{
UITextField * textField = (UITextField *)txfEdit;
NSInteger kMaxLength = 12;
UITextRange * selectedRange = [textField markedTextRange];
QLLog(@"selectedRange:%@",selectedRange);
NSString * newText = [textField textInRange:selectedRange];
QLLog(@"newText:%@",newText);
NSString *toBeString = textField.text;
NSString *lang = [[UITextInputModecurrentInputMode] primaryLanguage];// 键盘输入模式
if([langisEqualToString:@"zh-Hans"]) {//简体中文输入,包括简体拼音,健体五笔,简体手写
//获取高亮部分
UITextPosition * position =[textField positionFromPosition:selectedRange.startoffset:0];
if(!position) {
//没有高亮选择的字,则对已输入的文字进行字数统计和限制
if(toBeString.length > kMaxLength) {
textField.text = [toBeStringsubstringToIndex:kMaxLength];
}
}else{
//有高亮选择的字符串,则暂不对文字进行统计和限制
}
}
//中文输入法以外的直接对其统计限制即可,不考虑其他语种情况
else{
if(toBeString.length > kMaxLength) {
textField.text= [toBeStringsubstringToIndex:kMaxLength];
}
}
}
- UITextField事件
- UITextField输入事件
- UITextField输入事件
- UITextField监听事件
- UITextField的点击事件
- ios uitextfield done 事件
- UITextField的UIControlEventValueChanged事件
- 【IOS】UITextField 绑定事件
- UITextField代理事件
- UITextfield监听删除事件
- ios UITextField监听事件
- UITextField监听文字输入事件
- UITextField的returnkey点击事件
- UITextField 属性和代理事件
- UITextField控件之ValueChanged事件
- UITextField监听文字输入事件
- UITextField监听文字输入事件
- UIImageView事件响应使UITextField键盘消失
- 不安装Python的情况下用C++调用Python
- c# 接口 interface
- 串的基本用法(顺序存储结构)
- [Leetcode 55, Medium] Jump Game
- HDU 1026 Ignatius and the Princess I
- UITextField事件
- OAUTH协议
- Qt中 QString 和int, char等的“相互”转换
- R软件学习笔记-3(简单运算)
- vim中的常用命令
- 黑马程序员-----网络编程
- 在linux下连接MS SQL Server2008中SQL语句like中文
- [Leetcode 45, Hard] Jump Game II
- 串的基本用法(顺序存储结构)