gpt4 book ai didi

iOS 使用UITextField自定义搜索框 实现用户输入完之后“实时搜索”功能

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 32 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章iOS 使用UITextField自定义搜索框 实现用户输入完之后“实时搜索”功能由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

注:csdn的代码块有点捞,如果浏览器窗口较窄,一行代码占了两行的位置,后面的代码就看不到了,大家可以把浏览器窗口拉大一点 。

ui小姐姐设计的搜索框经常是五花八门,系统的搜索框经常不能满足我们的需求,需要我们特别定制一个。但是uitextfield的诸多回调里面,没有一个是适合触发搜索时间的。 uitextfieldtextdidchangenotification调用过于频繁,每输入一个字符就调一次接口怕是不太合适。 uitextfieldtextdidendeditingnotification只有在结束编辑的时候才会调一次,结束编辑就意味着键盘消失了,也不太合适。 这样就难倒我们了吗,当然不是,办法还是有滴.

解决方案 。

先自定义一个搜索框 改好样式,然后监听uitextfieldtextdidchangenotification 。

?
1
2
3
4
5
- ( void )textfielddidchange{
  if (self.searchdelegate && [self.searchdelegate respondstoselector:@selector(customsearchbar:textdidchange:)]) {
  [self.searchdelegate customsearchbar:self textdidchange:self.text];
  }
}

使用 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@property (nonatomic, strong) lgcustomsearchbar *searchbar;
@property (nonatomic, assign) nsinteger inputcount; 记录输入次数
 
- ( void )viewdidload {
  [super viewdidload];
  self.searchbar = [[lgcustomsearchbar alloc] initwithframe:cgrectmake(20, 10, kscreenwidth-40, 36)];
  self.searchbar.searchdelegate = self;
  [self.view addsubview:self.searchbar];
}
- ( void )customsearchbar:(lgcustomsearchbar *)searchbar textdidchange:(nsstring *)searchtext{
  if (searchtext.length == 0) {
  [self searchkeyword:@(self.inputcount)];
  }
  else {
  self.inputcount++;
  [self performselector:@selector(searchkeyword:) withobject:@(self.inputcount) afterdelay:1.5f];
  }
}
- ( void )searchkeyword:(nsnumber *)inputcount{
     // 判断不等于0是为了防止用户输入完直接点击搜索,延时结束之后又搜索一次
  if (inputcount.integervalue == self.inputcount && self.inputcount != 0) {
  [self loaddata];
  }
}
- ( bool )textfieldshouldreturn:(uitextfield *)textfield{
  [self loaddata];
  return no;
}
- ( void )loaddata{
  self.inputcount = 0;
     // 本地查询 或者 请求数据
     ...
  [self.tableview reloaddata];
}

核心代码 。

延迟1.5秒以后执行搜索,判读如果1.5秒之后传入的输入次数和现在的输入次数一致,说明用户1.5秒已经没有输入新内容了,加在新数据。这个时间可以自己调整 。

?
1
2
[self performselector:@selector(searchkeyword:) withobject:@(self.inputcount)
afterdelay:1.5f];

总结 。

到此这篇关于ios 使用uitextfield自定义搜索框 实现用户输入完之后“实时搜索”功能的文章就介绍到这了,更多相关ios uitextfield自定义搜索框 实时搜索内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/lg767201403/article/details/104943996 。

最后此篇关于iOS 使用UITextField自定义搜索框 实现用户输入完之后“实时搜索”功能的文章就讲到这里了,如果你想了解更多关于iOS 使用UITextField自定义搜索框 实现用户输入完之后“实时搜索”功能的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com