简单的问题:如果我的“完成”键是搜索,我怎么能辞去我的文本域。基本上,如果用户不想搜索,我该怎么办,而是想取消...
感谢
答案 0 :(得分:2)
您可以使用: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中添加内置取消按钮。检查属性“显示取消按钮”(红色箭头突出显示)
修改强>
<强> STEP-1:强>
有条不紊地检查textField的文本是否为空白?如果是这样,则为TextField的resignFirstResponder。您需要使用代码将代理设置为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;
希望这会对你有所帮助。
答案 1 :(得分:1)
返回按钮上的文字与讨论无关。你想知道如何在不按下返回按钮的情况下辞职第一响应者,并且有几种方法可以做到。
inputAccessoryView
在键盘上方的工具栏中显示单独的取消按钮。[self.view endEditing:YES]
(其中self
是您的视图控制器)。这将导致第一响应者辞职。 (在滚动视图中这非常挑剔。)rightBarButtonItem
换出取消栏按钮项,假设您当时在屏幕上有UINavigationBar
。编辑结束时,在常规右侧栏按钮项(如果有)中交换回来。