0

如何UITextField辞职UISearchBar?我尝试使用以下代码

    UIView * subView;
    NSArray * subViews = [self.searchBar subviews];
    for(subView in subViews)
    {
        if( [subView isKindOfClass:[UITextField class]] )
        {
            ((UITextField*)subView).delegate=self;
            ((UITextField*)subView).returnKeyType=UIReturnKeyDone;
            break;
        }
    }

    for (UIView *subview in self.searchBar.subviews)
    {
        if ([subview conformsToProtocol:@protocol(UITextInputTraits)])
        {
            [(UITextField *)subview setClearButtonMode:UITextFieldViewModeWhileEditing];
        }
    }

并添加了 TextField Delegate 方法

 - (BOOL)textFieldShouldReturn:(UITextField *)textField {

    [textField resignFirstResponder];

  return YES;
   }

这可行,但如果文本字段不为空,这只会让键盘退出。如果文本字段为空,则它不会辞职

4

3 回答 3

0

用这个 :

[searchBar resignFirstResponder];
于 2013-04-10T10:49:25.380 回答
0

首先在 .h 文件中设置委托,如下所示...

 @interface yourViewController : UIViewController<UISearchBarDelegate>

当你想放弃UISearchBar简单使用波纹管的键盘时..

[searchBar resignFirstResponder];

更新:

-(BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar{
    [self.searchBar resignFirstResponder];
    return YES;
}
于 2013-04-10T10:51:05.510 回答
0

请做这个...

-(void)searchBar:(UISearchBar *)theSearchBar textDidChange:(NSString *)searchText
{
    if (searchBar.text.length == 0)
        [searchBar resignFirstResponder];
}

我希望这会正常工作。

于 2013-04-10T11:07:13.823 回答