iPhone开发--用UITextField实现搜索框
因为界面美化的需要,原有的控件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的专栏
相关新闻>>
- 发表评论
-
- 最新评论 更多>>