UISearchBar 问题中的取消按钮
Cancel Button in UISearchBar issue
我在我的应用程序中实现了带有自定义(本地化)标题的搜索栏。
第一次点击搜索时,它显示取消按钮如下:
第一次
第二次当我按下取消按钮并再次点击搜索栏时,它看起来不错。
我的代码
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
[searchBar setShowsCancelButton:YES animated:YES];
UIButton *cancelButton;
UIView *topView = search.subviews[0];
for (UIView *subView in topView.subviews) {
if ([subView isKindOfClass:NSClassFromString(@"UINavigationButton")]) {
cancelButton = (UIButton*)subView;
}
}
if (cancelButton) {
[cancelButton setTitle:Localized(@"Cancel") forState:UIControlStateNormal];
}
}
它对我有用:
if (cancelButton) {
[cancelButton setTitle:Localized(@"Cancel") forState:UIControlStateNormal];
[search setNeedsLayout];
[search layoutIfNeeded];
}
尝试将 NSLocalizedString
设置为 UIAppearance
:
[[UIButton appearanceWhenContainedIn:[UISearchBar class], nil] setTitle:Localized(@"Cancel") forState:UIControlStateNormal];
swift
UIButton.appearance(whenContainedInInstancesOf: [UISearchBar.self]).setTitle("v1_cancel", for: .normal)
(在现代 ios 中不再有效)
这个
Change UISearchBar cancel button text in iOS 8
是最新的
我已经翻译了 swift 4 中的 答案:
UIButton.appearance(whenContainedInInstancesOf: [UISearchBar.self]).setTitle("Cancel", for: .normal)
我在我的应用程序中实现了带有自定义(本地化)标题的搜索栏。
第一次点击搜索时,它显示取消按钮如下:
第一次
第二次当我按下取消按钮并再次点击搜索栏时,它看起来不错。
我的代码
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
[searchBar setShowsCancelButton:YES animated:YES];
UIButton *cancelButton;
UIView *topView = search.subviews[0];
for (UIView *subView in topView.subviews) {
if ([subView isKindOfClass:NSClassFromString(@"UINavigationButton")]) {
cancelButton = (UIButton*)subView;
}
}
if (cancelButton) {
[cancelButton setTitle:Localized(@"Cancel") forState:UIControlStateNormal];
}
}
它对我有用:
if (cancelButton) {
[cancelButton setTitle:Localized(@"Cancel") forState:UIControlStateNormal];
[search setNeedsLayout];
[search layoutIfNeeded];
}
尝试将 NSLocalizedString
设置为 UIAppearance
:
[[UIButton appearanceWhenContainedIn:[UISearchBar class], nil] setTitle:Localized(@"Cancel") forState:UIControlStateNormal];
swift
UIButton.appearance(whenContainedInInstancesOf: [UISearchBar.self]).setTitle("v1_cancel", for: .normal)
(在现代 ios 中不再有效) 这个 Change UISearchBar cancel button text in iOS 8 是最新的
我已经翻译了 swift 4 中的
UIButton.appearance(whenContainedInInstancesOf: [UISearchBar.self]).setTitle("Cancel", for: .normal)