zoukankan      html  css  js  c++  java
  • iOS8 将UISearchBar cancel按钮文字改为中文“取消”

    首先得遵守UISearchBarDelegate代理协议;
    然后实现- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar这个代理方法;
    在代理方法中,加入以下代码:

    searchBar.showsCancelButton = YES;
        for (id cencelButton in [searchBar.subviews[0] subviews])
        {
            if([cencelButton isKindOfClass:[UIButton class]])
            {
                UIButton *btn = (UIButton *)cencelButton;
                [btn setTitle:@"取消"  forState:UIControlStateNormal];
            }
        }

    其中,searchBar.showsCancelButton = YES是必须的,不然不能把英文的“cancel”改成中文的“取消”。
    运行试试吧。

    2016.07.01更新
    在Stackoverflow找到一个更好的方法:

    [searchBar setValue("取消", forKey: "_cancelButtonText")];

    这种写法解决了上面那种写法在弹出取消按钮时不自然的问题。
    iOS9以后可以这样写:

    [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]].title = @"取消";

    iOS8也可以这样写:

    [[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil] setTitle:@"取消"];
  • 相关阅读:
    Centos7安装redis
    Cookie和Session的区别
    JavaWeb中的域对象
    ServletContext使用介绍
    Java Web核心组件之Servlet的使用介绍
    关于反射的杂谈
    leetcode117search-in-rotated-sorted-array
    23longest-consecutive-sequence
    leetcode24:word-ladder-ii
    leetcode25word-ladder
  • 原文地址:https://www.cnblogs.com/luqinbin/p/6029755.html
Copyright © 2011-2022 走看看