2012-03-26 48 views
-1

简单的问题:如果我的“完成”键是Search,我怎么能够辞掉我的文本字段。从本质上讲,做我做,如果用户不希望搜索,而是要取消......resignFirstResponder for UITextField with search returnkey

感谢

+0

在导航栏中放置一个条形按钮,通过退出第一个响应者来隐藏键盘。 – 2012-03-26 04:47:28

+0

同样的问题是这样的:-http://stackoverflow.com/questions/8558339/how-i-dismiss-keyboard-on-tapping-search-button-on-keyboard-regarding-uisearchba – Leena 2012-03-26 04:48:04

回答

2

您可以使用:为搜索栏取消按钮和需要实现这个SearchBar delegate

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 
{ 
    isSearching = NO; //This is a flag which specifies if searching is going on or not. 
    searchBar.text = @""; //Clears out search bar text 
    [self resetSearch]; //Reset search resets all the flags and variables. 
    [self.leadsTable reloadData]; //Reloads the tableView 
    [searchBar resignFirstResponder]; //Resigns responder from Search bar 
} 

这是辞职的响应,如果用户不希望搜索有道。

看看如何在UISearchBar中添加一个内置的取消按钮。检查属性 “演出取消按钮”(红色箭头高亮)

enter image description here

编辑:

STEP-1: 检查有条件的文本框的文本是否为空?如果是这样的resignFirstResponder为TextField。您需要委派设置为self给出UITextField使用代码:

txtField.delegate = self; 

或者您也可以通过文本域的delegate连接到File's Owner做到从界面生成器一样。

第2步:您需要实现此委托方法。

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    if([textField.text isEqualToString:@""]) 
    { 
     [textField resignFirstResponder]; 
    } 
    return YES; 
} 

编辑-1:

现在创建一个标有 '取消'

一个栏按钮UIToolbar一旦你做到这一点:

您可以编写一个按钮单击事件对于UIToolBar:

-(IBAction)cancelClicked:(id)sender 
{ 
    [txtField resignFirstResponder]; 
} 

O你已经完成,你现在可以写:

txtField.inputAccessoryView = toolbarOutlet; 

希望这可以帮助你。

+0

这不是我所寻找的,因为textField位于UITableView单元格内部,而不是UISearchBar。尽管谢谢你的回答。 – Apollo 2012-03-26 15:47:59

+0

@ derek.lo:在UITableViewCell下有UITextField而不是UISearch栏的具体原因是什么? – 2012-03-26 15:49:13

+0

textfield并不是要在tableview中搜索结果,而是为了在DB中发送一个项目的请求。因此它在单元格中看起来更好。 – Apollo 2012-03-26 15:51:09

1

在返回按钮上的文本是不相关的讨论。你想知道如何在不按下回车按钮的情况下退出第一响应者,并且有几种方法可以实现。

  1. 使用文本字段的inputAccessoryView在键盘上方的工具栏中显示单独的取消按钮。
  2. 在字段的超级视图上使用轻击手势识别器可识别用户何时轻击场外,并致电[self.view endEditing:YES](其中self是您的视图控制器)。这将导致第一响应者辞职。 (这在滚动视图中非常挑剔。)
  3. 在编辑时,假设当前屏幕上有UINavigationBar,在编辑时将当前视图控制器的rightBarButtonItem替换为取消栏按钮项目。编辑结束后,如果有的话,换回常规的右栏按钮项目。
+0

是的,这是我需要的知道。谢谢@warrenm – Apollo 2012-03-26 15:48:14

相关问题