UISearchBar 自定义代码在 iOS7 中崩溃,适用于 iOS6
Posted
技术标签:
【中文标题】UISearchBar 自定义代码在 iOS7 中崩溃,适用于 iOS6【英文标题】:UISearchBar customization code crashes in iOS7, works on iOS6 【发布时间】:2013-09-23 19:35:10 【问题描述】:我有一个支持 ios5.1 的 iOS 应用程序,我正在自定义搜索栏中的取消按钮。
我正在使用并且在 iOS6.1 之前有效的代码如下:
id barButtonAppearanceInSearchBar =
[UIBarButtonItem appearanceWhenContainedIn: [UISearchBar class], nil];
[barButtonAppearanceInSearchBar setTitle:
[self localizedStringValueFor:@"Cancel"]];
不知何故,第二行会导致错误的访问异常,当我尝试设置按钮文本的值时,barButtonAppearanceInSearchBar
似乎被释放了。
localizedStringForValue
是一个自定义方法,如果不存在翻译,它将返回带有所提供键或键本身的翻译的字符串。
现在,当我在 iOS7 的模拟器上运行应用程序时,应用程序总是崩溃。一直试图弄清楚我做错了什么,但到目前为止还没有运气。
【问题讨论】:
也许可以,但到目前为止它一直运行良好,我相信这是一个经常提到的自定义取消按钮文本问题的解决方案。 【参考方案1】:setTitle
不支持UIAppearanceContainer
方法。仅支持标有 UI_APPEARANCE_SELECTOR
的属性。
您必须在创建 UISearchBar
时手动设置标题。
【讨论】:
很抱歉,我找不到在创建时设置取消按钮文本的方法,我在 UISearchBar 的文档中遗漏了什么?以上是关于UISearchBar 自定义代码在 iOS7 中崩溃,适用于 iOS6的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS7 中更改 UISearchBar 的背景颜色
如何在 iOS7 中更改 UISearchBar 的 inputView?