热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在iOS8中更改UISearchBar取消按钮文本

如何解决《在iOS8中更改UISearchBar取消按钮文本》经验,为你挑选了8个好方法。

我想在iOS 8中的UISearchBar中的"取消"按钮的"取消"中更改文本.我正在使用UISearchController.我尝试过iOS 6和iOS 7的不同方法,但它们不起作用.有人这样做过吗?



1> Burhanuddin ..:

Objective-C的:

[searchBar setValue:@"customString" forKey:@"_cancelButtonText"];

迅速:

searchBar.setValue("customString", forKey:"_cancelButtonText")


这在iOS 13中崩溃。`禁止访问UISearchBar的set_cancelButtonText:ivar。
我认为这不是证据安全.如果Apple决定使用iOS更新更改按钮的`_cancelButtonText`键,则会导致运行时崩溃.

2> polo987..:

这在ios8中对我有用,没有在ios7中尝试,但是应该这样做,小心在应用周期的早期放置这一行(例如:appDelegate)

[[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil] setTitle:@"Annuler"];

从ios9开始,你也可以使用

[[UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]] setTitle:@"Annuler"];

Swift版本:

UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self]).title = "Annuler"

希望有所帮助;)



3> Wilmer..:

找到了!.在iOS 8中,取消按钮位于"cancelButton"键下.我使用UISearchBar委托searchBarTextDidBeginEditing进行更改.

func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
    let uiButton = searchBar.valueForKey("cancelButton") as UIButton
    uiButton.setTitle("Done", forState: UIControlState.Normal)

}


我会考虑不在此回调中设置按钮标题.这似乎有点奇怪和不必要.设置视图时,请考虑设置此值.
@Leo:`cancelButton`也是一个无证件的私人财产.没有下划线不会改变这一点.

4> Maysam..:

Swift 3.0:

在你的AppDelegate中添加:

UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self]).title = "my text"



5> Donal..:
 for view in (UISearchBar.subviews[0]).subviews{
             if let button = view as? UIButton{
             button.setTitleColor(UIColor.whiteColor(), forState: .Normal)
             button.setTitle("Cancel", forState:.Normal)
            }
     }

self.subviews [0]).子视图包含UISearchBarBackground,UISearchBarTextField,UINavigationButto n,其中UINavigationButton是UIButton.Check的子类,用于View作为UIButton,如果是,则更改UIButton的属性.



6> Aleksejs Mja..:

在Swift中:

searchBar.setValue("customString", forKey: "_cancelButtonText")

基于Burhanuddin Sunelwala的回答.


这是一个危险的解决方案。如果苹果更改了键名“ _cancelButtonText”,这将导致您的应用程序崩溃。

7> toddg..:

我无法在UISearchController中为UISearchBar工作.第一次显示取消按钮时,文本没有改变,但第二次显示.

直到我看到@ polo987的答案.这就是我所做的工作:

UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self]).title = "Done"



8> Akhil Clemen..:

Swift4中

更改标题:

(searchBar.value(forKey: "cancelButton") as! UIButton).setTitle("Done", for: .normal)

换颜色:

(searchBar.value(forKey: "cancelButton") as! UIButton).setTitleColor(UIColor.blue, for: .normal)


推荐阅读
author-avatar
孤狼舔血_347
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有