0

我有一个UISearchBar. 我希望键盘在用户点击搜索后立即消失……我确实尝试resignFirstResponder过,但没有奏效。任何帮助,将不胜感激

- (void)viewDidLoad {
    [super viewDidLoad];

    self.title = NSLocalizedString(@"Songs", @"Search for songs");


    NSMutableArray *array = [[NSArray alloc]initWithObjects: @"Book_1", @"Book 2", @"Book _ 4", nil];
    self.booksArray = array;
    [array release];
    search.delegate=self;
    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem;
}

谢谢 TC

4

2 回答 2

0

它应该通过在委托对象上实现响应方法来工作:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [searchBar resignFirstResponder];
}

参考:http ://www.iphonedevsdk.com/forum/iphone-sdk-development/7148-problem-uisearchbar-navigation-controller.html#post59467

于 2011-04-14T06:47:12.370 回答
0

请确保以下事项。(我希望您在谈论键盘的搜索按钮。)

  1. 您已将您IBOutlet的 searchBar 与其变量连接起来search
  2. 您不会在代码中的任何地方取消引用搜索变量(重新分配它)。
  3. 您的- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar 方法与viewcontrollersearchBar 相同。
  4. 请 NSLog(@"搜索栏实例:%@",search); 在 viewDidLoad 方法中,searchBarSearchButtonClicked并验证两个实例是否相同,如果不是,那么您search将在代码中的某处重新分配。
  5. 就在[searchBar resignFirstResponder];NSLog(@"isFirstResponder : %d",[searchbar isFirstResponder]); 和NSLog(@"Next Responder : %@",[searchBar nextResponder]);
  6. 点击键盘的搜索按钮时是否正在- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar 调用方法?确保没有在您的后面添加键盘responder(如textFieldtextView其他)可能是无意的。请也通过xib检查它。searchBarsearchBar

谢谢,

于 2011-04-15T03:12:55.203 回答