Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 隐藏搜索按钮上的键盘单击由代码创建的搜索栏_Ios_Iphone_Objective C - Fatal编程技术网

Ios 隐藏搜索按钮上的键盘单击由代码创建的搜索栏

Ios 隐藏搜索按钮上的键盘单击由代码创建的搜索栏,ios,iphone,objective-c,Ios,Iphone,Objective C,我使用以下代码创建了一个搜索栏: UISearchBar *Search = [[UISearchBar alloc]initWithFrame:CGRectMake(150, 0,170 , 50)]; [SearchView addSubview:Search]; 但当我点击搜索按钮时,键盘并没有隐藏。我使用了很多方法,比如searchbartextdidediting和searchBarSearchButtonClicked。可能是因为我的搜索栏没有连接。我还在.h类和.munload

我使用以下代码创建了一个
搜索栏

 UISearchBar *Search = [[UISearchBar alloc]initWithFrame:CGRectMake(150, 0,170 , 50)];
[SearchView addSubview:Search];
但当我点击搜索按钮时,键盘并没有隐藏。我使用了很多方法,比如
searchbartextdidediting
searchBarSearchButtonClicked
。可能是因为我的搜索栏没有连接。我还在.h类和.m
unload
方法中使用了
UISearchBarDelegate
委托:

Search.delegate = Self;

有人能建议我如何将由代码创建的搜索栏连接到我的视图控制器上,这样它就可以工作了吗?

首先你需要设置搜索栏的
delegate
,然后你应该使用
ui搜索栏的
delegate
方法,比如

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

}
实现了
-(void)SearchBarSearchButtonClick:(UISearchBar*)searchBar
,如下代码:

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
    [searchBar resignFirstResponder];
 }
不要忘记在接口(.h)文件中添加UISearchBarDelegate


继续…:)

您可以使用以下委托功能:

 - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar

当用户按下“搜索”按钮时,将调用此函数。您可以随意关闭您的按键,在那里做任何您需要的事情

您也可以通过按钮操作方法来完成。单击“搜索”按钮时,写下以下行

(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [self.view endEditing:YES];
}

这将起作用。

请尝试将ViewDidLoad方法中UISearchBar的委托设置为:

Use the `resignFirstResponder`

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

//hide keyboard on searchBarTextDidEndEditing

    - (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{

 //hide keyboard

    [candySearchBar resignFirstResponder];

}
yourSearchBar.delegate = self;

我尝试了这个方法,但是这个方法没有被调用。我使用日志检查它,你能告诉我如何委派我的搜索栏吗?这个方法在点击搜索按钮时没有被调用,你能建议我它没有被调用的问题是什么吗?yourSearchBar.delegate=self;正如Ashutosh所说:0)