iPhone開發--用UITextField實現搜尋方塊

來源:互聯網
上載者:User

因為介面美化的需要,原有的控制項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的專欄

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.