繁体   English   中英

UITextField的带有搜索returnkey的resignFirstResponder

[英]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;

希望这对您有所帮助。

返回按钮上的文字与讨论无关。 您想知道如何在不按返回键的情况下辞职第一响应者,并且有几种方法可以做到这一点。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM