[英]resignFirstResponder for UITextField with search returnkey
一个简单的问题:如果我的“完成”键是“搜索”,如何才能退出文本字段。 本质上,如果用户不想搜索,而是想取消...该怎么办...
谢谢
您可以使用:SearchBar的取消按钮,并且需要实现此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中添加内置的“取消”按钮。 检查属性“ 显示取消按钮 ”(红色箭头突出显示)
编辑:
步骤1:有条件地检查您的textField文本是否为空白? 如果是这样,请为TextField重新签名FirstResponder。 您需要委派设置为self
为的UITextField使用代码:
txtField.delegate = self;
或者,您可以通过将TextField的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];
}
完成后,您现在可以编写:
txtField.inputAccessoryView = toolbarOutlet;
希望这对您有所帮助。
返回按钮上的文字与讨论无关。 您想知道如何在不按返回键的情况下辞职第一响应者,并且有几种方法可以做到这一点。
inputAccessoryView
在键盘上方的工具栏中显示一个单独的取消按钮。 [self.view endEditing:YES]
(其中self
是您的视图控制器)。 这将导致第一响应者辞职。 (这在滚动视图中非常挑剔。) UINavigationBar
,则在编辑时将当前视图控制器的rightBarButtonItem
交换为取消栏按钮项。 编辑结束后,请换回常规的右栏按钮项(如果有)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.