UITextField shouldChangeCharactersInRange获取实时数据并执行联想搜索和搜索
采用搜索键盘类型,点击键盘的搜索按钮执行搜索,文本内容变化时,执行联想搜索。
输入框设置
- (UITextField *)searchTextField {if(!_searchTextField){_searchTextField = [self createTextField];_searchTextField.font = [UIFont systemFontOfSize:13];//字号_searchTextField.textColor = DEFAULT_TITLE_SUPER_FRONT_COLOR;
// NSMutableAttributedString *placeholderString = nil;if(isCommonUnitEmptyString(self.placeholderString)){_searchTextField.text = @"";}else{
// NSMutableAttributedString *placeholderString = [[NSMutableAttributedString alloc] initWithString:@"昵称/个人ID/房间名称" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12],NSForegroundColorAttributeName:BGColorHex(CCCCCC)}];NSMutableAttributedString *placeholderString = [[NSMutableAttributedString alloc] initWithString:self.placeholderString attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13],NSForegroundColorAttributeName:BGColorHex(888888)}];_searchTextField.attributedPlaceholder = placeholderString;}_searchTextField.delegate = self;_searchTextField.backgroundColor = [UIColor clearColor];_searchTextField.keyboardType = UIKeyboardTypeDefault;_searchTextField.returnKeyType = UIReturnKeyGoogle;}return _searchTextField;
}
键盘事件处理
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{if([string isEqualToString:@""]){if(range.length == string.length){if (self.deleteBlock) {self.deleteBlock(@"");}}else{NSString *str = [NSString stringWithFormat:@"%@%@", getNotNilString([textField.text substringToIndex:range.location]), getNotNilString([textField.text substringFromIndex:range.location+range.length])];if (self.deleteBlock) {self.deleteBlock(str);}}return YES;}if(![string isEqualToString:@"\n"] && (textField.text.length + string.length > serarchKeyWordMaxLenght)){return NO;}if ([string isEqualToString:@"\n"]){
// if (self.deleteBlock) {
// self.deleteBlock(textField.text);
// }[textField resignFirstResponder];//检测到用户点击换行或rentun,执行搜索请求NSString *keyWord = [getNotNilString(textField.text) stringByReplacingOccurrencesOfString:@" " withString:@""];if(isCommonUnitEmptyString(keyWord)){return YES;}if(self.searchBlock){self.searchBlock(keyWord);}[self endEditing:YES];return NO;}else{NSString *str = [NSString stringWithFormat:@"%@%@%@", getNotNilString([textField.text substringToIndex:range.location]), string, getNotNilString([textField.text substringFromIndex:range.location])];if (self.deleteBlock) {self.deleteBlock(str);}}return YES;
}
UITextField shouldChangeCharactersInRange获取实时数据并执行联想搜索和搜索相关推荐
- jQuery通过ajax方法获取json数据不执行success的原因及解决方法
1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...
- jquery通过ajax方法获取json数据不执行success
1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...
- 华泰股票交易接口如何获取实时数据和同步时间数据?
下面直接分享华泰股票交易接口如何获取实时数据和同步时间数据? 首先.获取实时数据 python的函数库非常丰富,httplib具备获取API接口数据的功能. API返回参数是json格式的,可以用非标 ...
- jquery ajax 不执行success,jQuery通过ajax方法获取json数据不执行success的原因及解决方法...
1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...
- android系统相机实时数据采集流程,Android摄像头获取实时数据+Demo
前言 首先需要用到的是一个叫Camera类的,更新的一个叫Camera2的类. Camera2是从 SDK 5.0(API Level 21)开始才被引入的.里面的方法有些还是比原来的方便许多的,但是 ...
- Android摄像头获取实时数据+Demo
首先需要用到的是一个叫Camera类的,更新的一个叫Camera2的类. Camera2是从 SDK 5.0(API Level 21)开始才被引入的.里面的方法有些还是比原来的方便许多的,但是,用户 ...
- 量化交易系统如何获取股票数据的执行过程?
量化交易第一步就是通过交易系统来获取数据,介绍下面这种直接获取的方法: 1.通过pytdx获取本地通达信数据 2.通过requests爬虫爬取财经数据 3.通过python第三方库pytdx获取 4. ...
- java获取mysql数据定时执行_详解SpringBoot 创建定时任务(配合数据库动态执行)...
序言:创建定时任务非常简单,主要有两种创建方式:一.基于注解(@Scheduled) 二.基于接口(SchedulingConfigurer). 前者相信大家都很熟悉,但是实际使用中我们往往想从数据库 ...
- java获取mysql数据定时执行_mysql 事件处理(定时触发某个任务或存储过程等)
自MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录.对数据进行汇总等等),来取代原先只能由操作系统的计划任 ...
最新文章
- 笔记本桌面计算机打开不了怎么办,笔记本电脑开不了机怎么办?
- numpy给数据新增一个维度np.newaxis及其使用场景
- weblogic部署ssh2应用出现异常
- 零基础学Python(第四章 变量类型)
- unity摄影机depth模式_Unity3D Camera 摄像机属性详解
- c++ 返回引用_【Excel必知必会】引用(链接)小专题
- 简单类名转为class_13 网页各区域div的常见类名
- Linux环境Hadoop环境搭建
- 网站html页面显示404错误,网站怎样设置404错误页面
- linux bzip2 压缩目录,linux的gzip、bzip2、xz三种压缩使用方法工具介绍
- 解决命令提示符已被系统管理员停用的问题
- 更改C盘用户文件夹名
- 凝思磐石linux系统怎么切双屏_linux系统下怎么设置双屏拼接
- 七、常用类(高琪java300集+java从入门到精通笔记)
- 正方形、长方形、立方体
- python中“羊车门问题”的简单分析与代码实现
- 计算机扩大C盘分区容量,电脑c盘空间太小,用分区软件把c盘扩大10g随后开机就这样了,怎么搞...
- mysql cpu使用率接近99%
- js中的 与或运算顺序 (包含例子)
- 【华为Hilink SDK Linux系统开发】第一章:华为hilink平台简介及开发流程