/*

通知使用,可以通过接受系统通知来做一些事情

UITextField派生自UIControl,所以UIControl类中的通知系统在文本字段中也可以使用。除了UIControl类的标准事件,你还可以使用下列UITextField类特有的事件

UITextFieldTextDidBeginEditingNotification

UITextFieldTextDidChangeNotification

UITextFieldTextDidEndEditingNotification

当文本字段退出编辑模式时触发。通知的object属性存储了最终文本。

因为文本字段要使用键盘输入文字,所以下面这些事件发生时,也会发送动作通知

UIKeyboardWillShowNotification  //键盘显示之前发送

UIKeyboardDidShowNotification   //键盘显示之后发送

UIKeyboardWillHideNotification  //键盘隐藏之前发送

UIKeyboardDidHideNotification   //键盘隐藏之后发送

*/

委托方法

C代码 

#pragma mark - UITextFieldDelegate

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField

{

//返回一个BOOL值,指定是否循序文本字段开始编辑

return YES;

}

- (void)textFieldDidBeginEditing:(UITextField *)textField

{

//开始编辑时触发,文本字段将成为first responder

}

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{

//返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会resign first responder

//要想在用户结束编辑时阻止文本字段消失,可以返回NO

//这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息

return NO;

}

- (BOOL)textFieldShouldReturn:(UITextField *)textField

{

[textField resignFirstResponder];

//返回一个BOOL值,指明是否允许在按下回车键时结束编辑

return YES;

}

- (BOOL)textFieldShouldClear:(UITextField *)textField

{

/*

点击clear按钮时会调用此方法

返回一个BOOL值指明是否允许根据用户请求清除内容,可以设置在特定条件下才允许清除内容

*/

return YES;

}

- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

{

//当用户使用自动更正功能,把输入的文字修改为推荐的文字时,就会调用这个方法。

//这对于想要加入撤销选项的应用程序特别有用

//可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。

//要防止文字被改变可以返回NO

//这个方法的参数中有一个NSRange对象,指明了被改变文字的位置,建议修改的文本也在其中

return YES;

}

限制只能输入特定的字符

C代码 

/*

限制只能输入特定的字符

*/

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

{

NSString *numbers = @"0123456789n";

//    NSString *alphaNum = @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

NSCharacterSet *cs;

cs = [[NSCharacterSet characterSetWithCharactersInString:numbers]invertedSet];

NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs]componentsJoinedByString:@""]; //按cs分离出数组,数组按@""分离出字符串

BOOL canChange = [string isEqualToString:filtered];

return canChange;

}

字数限制 :

C代码  

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

{

// 键盘的Enter键

if ([text isEqualToString:@"\n"]) {

return YES;

}

int wordCount = [textView.text length] + text.length;

if(wordCount > _totalWord){ // _totalWorld为字数

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"字数限制"

message:[NSString stringWithFormat:@"不能超过%i字的上限哦!", _totalWord]

delegate:nil

cancelButtonTitle:@"确定"

otherButtonTitles:nil

];

[alert show];

return NO;

}else {

//        self.wordnum.text = [NSString stringWithFormat:@"%d字", _totalWord - wordCount];

}

return YES;

}

textField 总结的更多相关文章

  1. TextField和TextView的限制输入长度

    TextField的限制代理方法 只需要在这个代理方法里面code这样的代码就可以了 16 是长度可以自己设置 - (BOOL)textField:(UITextField *)textField s ...

  2. 控制TextField的内容长度

    参考如下代码(下例是控制设置交易密码,控制6位): - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [ ...

  3. iOS 如何自定义UISearchBar 中textField的高度

    iOS 如何自定义UISearchBar 中textField的高度 只需设置下边的方法就可以 [_searchBar setSearchFieldBackgroundImage:[UIImage i ...

  4. iOS 点击TextField不弹出软键盘的解决方案

    开发中遇到: 在模拟器里面,textfield可以通过电脑键盘输入,可是怎么也不会自动弹出模拟器软键盘 解决方案: 切换一下键盘,command+shift+k,Xcode6.3 中只能是一种输入源

  5. UITextField的代理方法:textField:shouldChangeCharactersInRange:replacementString

    原文链接:http://www.cnblogs.com/zhanggui/p/6101813.html 这个我在开发的过程中用到的次数最多,因此这里就简单对其进行分析.先看看Command+点击 弹出 ...

  6. iOS 限制TextField输入长度(标准)

    iOS 限制TextField输入长度(标准) 网上有很多限制textField输入长度方法,但是我觉得都不是很完美,准确来说可以说是不符合实际开发的要求,因此在这里整理一下textField限制输入 ...

  7. TextField文本框

    1)失去第一响应者状态方法(即关闭键盘) 要先将视图view的底层类设置为UIControl类 再设置view的touch down事件,在事件中写入以下方法 [self.textField resi ...

  8. IOS textField(textview)字数判断

    textfield 有时会需要设置字数限制,如果只是英文或者符号,可以直接在以下代理方法中判断字数 -(BOOL)textField:(UITextField *)textField shouldCh ...

  9. iOS textField输入金额的限制,小数点前9位,后面两位

    iOS textField输入金额的限制,小数点前9位,后面两位,如果不加小数点,最大位数是9位,加上小数点,最大位数是12位,超出最大位数可删除 - (BOOL)textField:(UITextF ...

  10. iOS TextField用法大全

    //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, ...

随机推荐

  1. HDU - 4405 Aeroplane chess(期望dp)

    题意:沿着x轴从0走到大于等于N的某处,每一步的步数由骰子(1,2,3,4,5,6)决定,若恰好走到x轴上某飞行路线的起点,则不计入扔骰子数.问从0走到大于等于N的某处的期望的扔骰子次数. 分析: 1 ...

  2. windows自带的颜色编辑器居中

    void xxx::SetOSDColor(CLabelUI * pLabel) { COLORREF color = RGB(*, *, *); CColorDialog cdlg(color, C ...

  3. 关于SI4432的问题简单讲解

    对于SX1278 和SI4432的对比性,下面为大家展示对比参数: 由此可以看出的SI4432虽然跟SX1278有部分地方不同,但是整体来说还是差别不大,各有各的长处和短处,性价比上个人还是觉得SI4 ...

  4. 【LeetCode】解码方法

    [问题] 一条包含字母 A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2…'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数. 示例 : 输 ...

  5. linux 批量kill php进程

    一.执行以下命令 ps -ef|grep php|grep -v grep|cut -c 9-15|xargs kill -9     管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右 ...

  6. 65.ORM查询条件:gte,gt,lte和lt的使用

    1. gte: 代表的是大于等于,英文全称为:great than equal.举例:找到文章id大于等于3等文章,示例代码如下: 定义模型的示例代码如下: from django.db import ...

  7. Pycharm2020最新激活码|永久激活(附最新激活码和插件)

    最近很多人的Pycharm激活时间又过期了,后台很多人索要激活码,我就再把激活的方法汇和工具再梳理一次给大家. 最主要有两种激活方式(两种方式需要的激活码不同): 一.激活码激活: 一般一年多需要激活 ...

  8. 语句:{% url menu.url_name %}的作用

    语句: {% url menu.url_name %} 表示跳转,上面的menu.url_name意思是menu表的url_name字段 如果menu表的url_name字段的值是sales_dash ...

  9. springboot~不用模板执行html文件

    放到在resources/static目录下,创建目录或html文件,均可.如:

  10. promise 核心 几个小问题

    1.如何改变pending的壮体 抛出异常.pending变为rejected  // throw new Error('fail')  内部抛出异常也这样 reason为抛出的error resol ...