iPhone开发--用UITextField实现搜索框

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 05:17 点击:

因为界面美化的需要,原有的控件SearchBar控件太丑了,又懒的研究SearchBar控件的新样式,所以决定重写个搜索功能的控件。

创建个UITextField的类对象。


[cpp] searchField= [[[UITextField alloc]initWithFrame:CGRectMake(0,5,320,36)] autorelease]; 
searchField.textColor= [UIColorcolor WithRed:0.0/255.0 green:103.0/255.0 blue:155.0/255.0 alpha:1.0]; 
searchField.font= [UIFont systemFontOfSize:16] ; 
searchField.backgroundColor= [UIColor blueColor] ; 
searchField.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter;   
[searchField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; // textField的文本发生变化时相应事件 
searchField= [[[UITextField alloc]initWithFrame:CGRectMake(0,5,320,36)] autorelease];
searchField.textColor= [UIColorcolor WithRed:0.0/255.0 green:103.0/255.0 blue:155.0/255.0 alpha:1.0];
searchField.font= [UIFont systemFontOfSize:16] ;
searchField.backgroundColor= [UIColor blueColor] ;
searchField.contentVerticalAlignment=UIControlContentVerticalAlignmentCenter; 
[searchField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; // textField的文本发生变化时相应事件
设置ReturnKeyType为UIRetuirKeySearch :
[cpp] [searchField setReturnKeyType:UIReturnKeySearch]; 
[searchField setReturnKeyType:UIReturnKeySearch];
设置UITextField的delegate为self:
 
[cpp] searchField.delegate=self; 
searchField.delegate=self;
之后编写响应点击搜索按钮的响应事件的函数:

[cpp] - (BOOL)textFieldShouldReturn:(UITextField*)theTextField { 
  [theTextField resignFirstResponder]; 
  NSLog(@"do something what you want"); 
  returnYES; 

- (BOOL)textFieldShouldReturn:(UITextField*)theTextField {
  [theTextField resignFirstResponder];
  NSLog(@"do something what you want");
  returnYES;
}textField的文本内容发生变化时,处理事件函数
[cpp] - (void) textFieldDidChange:(UITextField*) TextField{ 
  NSLog(@"textFieldDidChange textFieldDidChange"); 
  if(![TextField.textisEqualToString:@""]) { 
    delButton.hidden=NO;  // 仿制searchbar后面的小叉叉  
  } else{ 
    delButton.hidden=YES; 
  } 

- (void) textFieldDidChange:(UITextField*) TextField{
  NSLog(@"textFieldDidChange textFieldDidChange");
  if(![TextField.textisEqualToString:@""]) {
    delButton.hidden=NO;  // 仿制searchbar后面的小叉叉
  } else{
    delButton.hidden=YES;
  }
}

哈,当然本人还是参考了下面的一位高人的idea:http://forums.macrumors.com/archive/index.php/t-523664.html

 

备注:此文章之前发布在baidu上,但是气不过百度的排版样式,转战csdn。

摘自 zcl369369的专栏

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Lexical or Preprocessor Issue 'xxx.h
      • ios学习笔记(二)xcode 4.3.2下实现基本交互
      • ios版本的helloworld
      • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
      • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
      • UITableView一些方法
      • IOS类似iphone通讯录TableView的完整demo【附源码】
      • [iPhone中级]iPhone团购信息客户端的开发 (二)
      • iphone(object-c)内存管理(1)
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1