Search 搜索栏ios 8中的取消按钮
告诉我如何更改搜索栏中“取消”按钮上的文本Search 搜索栏ios 8中的取消按钮,search,ios8,Search,Ios8,告诉我如何更改搜索栏中“取消”按钮上的文本 图:您可以在UISearchBar的此委托方法中执行此操作 - (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller { [theSearchBar setShowsCancelButton:YES animated:NO]; for (UIView *subView in theSearchBar.subviews){
图:您可以在UISearchBar的此委托方法中执行此操作
- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
{
[theSearchBar setShowsCancelButton:YES animated:NO];
for (UIView *subView in theSearchBar.subviews){
if([subView isKindOfClass:[UIButton class]]){
[(UIButton*)subViewsetTitle:@"Button Title"forState:UIControlStateNormal];
}
}
}
更新
经过长时间的寻找,这是我在斯威夫特工作的唯一途径
是设置自定义UIBarButtonItem,但需要在导航栏上显示搜索栏
在ViewDidLoad()中
self.searchDisplayController?.displaysSearchBarInNavigationBar=true
和在委托方法中
func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
var barButton = UIBarButtonItem(title: "Button Title", style: UIBarButtonItemStyle.Done, target: self, action: "here")
self.searchDisplayController?.navigationItem.rightBarButtonItem = barButton
}
我希望这对你有用
«另一次更新
正如您在评论中所说,您需要本地化应用程序,在您的情况下,您只需要本地化故事板
首先导航到您的项目设置,然后是信息,在本地化下单击+按钮并添加您自己的语言,然后仅检查情节提要
现在你已经本地化了你的应用程序,但是在你删除应用程序并重新安装之前,你可能看不到更改,或者如果设备语言设置为英语,你需要编写两行代码来手动更改语言,是吗
var str:NSString = "ar" // ar stands for arabic you put here you own language small character
var myArray:NSArray = [str]
NSUserDefaults.standardUserDefaults().setObject(myArray, forKey: "AppleLanguages")
你的按钮看起来像这样
如果您想了解更多有关本地化的信息,请参阅此
如果您在我之前仍然需要帮助:)有两种解决方案
祝你好运。实际上,取消按钮不是搜索栏中的俯视图。你应该递归搜索它
-(UIButton*)findButtonInView:(UIView*)v{
for (UIView *subView in v.subviews){
if([subView isKindOfClass:[UIButton class]]){
return (UIButton*)subView;
}else if([subView isKindOfClass:[UIView class]]){
UIButton* btn = [self findButtonInView:subView];
if(btn){
return btn;
}
}
}
return nil;
}
//...
UIButton* searchButton = [self findButtonInView:self.searchBar];
有可能在Swift上完成吗?请参阅更新的答案。不幸的是,它没有帮助。谢谢。这里有另一种方法,但您需要在项目中使用objective-c类。您想这样做吗?您能告诉我为什么要使用另一个标题吗?如果您想为另一种语言使用另一个标题,您可以让系统在r通过本地化您的应用程序,取消将根据当前语言自动更改。这是由于另一种语言。我认为更改语言就足够了。向我们展示您迄今为止的尝试。如何将此方法转换为swift?
-(UIButton*)findButtonInView:(UIView*)v{
for (UIView *subView in v.subviews){
if([subView isKindOfClass:[UIButton class]]){
return (UIButton*)subView;
}else if([subView isKindOfClass:[UIView class]]){
UIButton* btn = [self findButtonInView:subView];
if(btn){
return btn;
}
}
}
return nil;
}
//...
UIButton* searchButton = [self findButtonInView:self.searchBar];