采用搜索键盘类型,点击键盘的搜索按钮执行搜索,文本内容变化时,执行联想搜索。
输入框设置

- (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获取实时数据并执行联想搜索和搜索相关推荐

  1. jQuery通过ajax方法获取json数据不执行success的原因及解决方法

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...

  2. jquery通过ajax方法获取json数据不执行success

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...

  3. 华泰股票交易接口如何获取实时数据和同步时间数据?

    下面直接分享华泰股票交易接口如何获取实时数据和同步时间数据? 首先.获取实时数据 python的函数库非常丰富,httplib具备获取API接口数据的功能. API返回参数是json格式的,可以用非标 ...

  4. jquery ajax 不执行success,jQuery通过ajax方法获取json数据不执行success的原因及解决方法...

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...

  5. android系统相机实时数据采集流程,Android摄像头获取实时数据+Demo

    前言 首先需要用到的是一个叫Camera类的,更新的一个叫Camera2的类. Camera2是从 SDK 5.0(API Level 21)开始才被引入的.里面的方法有些还是比原来的方便许多的,但是 ...

  6. Android摄像头获取实时数据+Demo

    首先需要用到的是一个叫Camera类的,更新的一个叫Camera2的类. Camera2是从 SDK 5.0(API Level 21)开始才被引入的.里面的方法有些还是比原来的方便许多的,但是,用户 ...

  7. 量化交易系统如何获取股票数据的执行过程?

    量化交易第一步就是通过交易系统来获取数据,介绍下面这种直接获取的方法: 1.通过pytdx获取本地通达信数据 2.通过requests爬虫爬取财经数据 3.通过python第三方库pytdx获取 4. ...

  8. java获取mysql数据定时执行_详解SpringBoot 创建定时任务(配合数据库动态执行)...

    序言:创建定时任务非常简单,主要有两种创建方式:一.基于注解(@Scheduled) 二.基于接口(SchedulingConfigurer). 前者相信大家都很熟悉,但是实际使用中我们往往想从数据库 ...

  9. java获取mysql数据定时执行_mysql 事件处理(定时触发某个任务或存储过程等)

    自MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录.对数据进行汇总等等),来取代原先只能由操作系统的计划任 ...

最新文章

  1. 笔记本桌面计算机打开不了怎么办,笔记本电脑开不了机怎么办?
  2. numpy给数据新增一个维度np.newaxis及其使用场景
  3. weblogic部署ssh2应用出现异常
  4. 零基础学Python(第四章 变量类型)
  5. unity摄影机depth模式_Unity3D Camera 摄像机属性详解
  6. c++ 返回引用_【Excel必知必会】引用(链接)小专题
  7. 简单类名转为class_13 网页各区域div的常见类名
  8. Linux环境Hadoop环境搭建
  9. 网站html页面显示404错误,网站怎样设置404错误页面
  10. linux bzip2 压缩目录,linux的gzip、bzip2、xz三种压缩使用方法工具介绍
  11. 解决命令提示符已被系统管理员停用的问题
  12. 更改C盘用户文件夹名
  13. 凝思磐石linux系统怎么切双屏_linux系统下怎么设置双屏拼接
  14. 七、常用类(高琪java300集+java从入门到精通笔记)
  15. 正方形、长方形、立方体
  16. python中“羊车门问题”的简单分析与代码实现
  17. 计算机扩大C盘分区容量,电脑c盘空间太小,用分区软件把c盘扩大10g随后开机就这样了,怎么搞...
  18. mysql cpu使用率接近99%
  19. js中的 与或运算顺序 (包含例子)
  20. 【华为Hilink SDK Linux系统开发】第一章:华为hilink平台简介及开发流程

热门文章

  1. 【论文】2019年各大顶会神经关系抽取(NRE)优质论文整理分享
  2. .NET Memory Profiler 4.6 免费下载地址
  3. win7下获取资源管理器中鼠标选中文件路径
  4. 汽车加油问题 --贪心算法
  5. 傅里叶变换尺度变换性质_傅里叶变换的时移特性和尺度变换特性
  6. CC2530设置发射功率
  7. rdp协议打开 windows_RDP服务开启
  8. mingw64怎么写make(已实现)
  9. 2022和23届港澳台联考学生注意啦!通过港澳台联考申请香港知名大学!
  10. android重学知识点