• 自定义软键盘


    我想用这篇文章简单记录下如何自定义软键盘。

    软键盘使用的几种方法:

    1:使用系统自带键盘

    2:使用用户自定义的键盘来取代系统自定义的键盘

    3:让自定义的键盘和系统的键盘共同存在

    4:直接修改系统键盘

    下面详细介绍

    1:使用系统自定义键盘

    iphone已经给我们提供了系统自定义的软键盘,并且提供了适用与大多数情况下的软键盘,比如:有的是专门的数字键盘,有的是数字和字符都含有的软键盘,这个可以通过属性(KeyboardType)来设定。

    typedef enum

    {

        UIKeyboardTypeDefault,                // Default type for the current input method.

        UIKeyboardTypeASCIICapable,           // Displays a keyboard which can enter ASCII characters, non-ASCII keyboards remain active

        UIKeyboardTypeNumbersAndPunctuation// Numbers and assorted punctuation.

        UIKeyboardTypeURL,                    // A type optimized for URL entry (shows . / .com prominently).

        UIKeyboardTypeNumberPad,              // A number pad (0-9). Suitable for PIN entry.

        UIKeyboardTypePhonePad,               // A phone pad (1-9, *, 0, #, with letters under the numbers).

        UIKeyboardTypeNamePhonePad,           // A type optimized for entering a person's name or phone number.

        UIKeyboardTypeEmailAddress,           // A type optimized for multiple email address entry (shows space @ . prominently).

    #if __IPHONE_4_1 <= __IPHONE_OS_VERSION_MAX_ALLOWED

        UIKeyboardTypeDecimalPad,             // A number pad with a decimal point.

    #endif

        UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, // Deprecated

    } UIKeyboardType;

    从上面我们可以看出,Apple已经给我们提供了好几种形式的输入软件键盘,我们仅仅通过设置属性(KeyboardType)就可以调用相应的键盘,比如:

    textField.keyboardType=UIKeyboardTypeNumberPad

    1.1:有写键盘,我们还可以自定义软键盘Reture键的类型,

    typedef enum

    {

        UIReturnKeyDefault,

        UIReturnKeyGo,

        UIReturnKeyGoogle,

        UIReturnKeyJoin,

        UIReturnKeyNext,

        UIReturnKeyRoute,

        UIReturnKeySearch,

        UIReturnKeySend,

        UIReturnKeyYahoo,

        UIReturnKeyDone,

        UIReturnKeyEmergencyCall,

    } UIReturnKeyType;

    同样的,apple也是已经给我们提供了比较多的return键盘的类型。

    这样我们就可以绑定UITextField输入控件调出软键盘后单击reture键盘,触发的函数,

    第一步,要帮顶UITextField的委托

    第二步:定义return绑定的回调函数:

    参考代码:

    m_userName.returnKeyType = UIReturnKeyNext;

    m_userName.delegate= self;


    - (BOOL)textFieldShouldReturn:(UITextField *)textField

    {

      //在这里面写入单击键盘RETURE键,之后相应的函数。

      return YES;

    }

    这里我想另外的添加一点知识:

    如何让UITextField获取键盘输入焦点:[self.m_userPassword becomeFirstResponder];

    我们使用自定义键盘,关键就是选择不同的键盘类型,然后根据实际情况,处理对应的回调函数

    2:完全使用用户自定义的键盘来取代系统自定义的键盘

    这里就是我们放弃系统自带的键盘,然后使用我们自定义的键盘视图

    参考代码:

    UIView *keyView ;

    Self.textFieldView.inputView = keyView;//输入我们自定义的键盘

    self.textFieldView.inputAccessoryView = nil;

    运行程序后,当再次调用键盘后就会出现我们自定义的键盘。

    3:让自定义的键盘和系统的键盘共同存在

    同上面的自定义键盘一样,常见一个新的XIB文件以及一个想关联的一个视图类,

    参考代码:

    UIView *keyView ;

    Self.textFieldView.inputView = nil;//输入我们自定义的键盘

    self.textFieldView.inputAccessoryView = keyView;

    对你2、3的参考代码你可能就会明白,inputView和inputAccessoryView属性的作用了。

    我们可以将键盘看成有两部分组成(当然,键盘还会有其他的部分组成),一部分是inputView,一部分是InputAccessoryView,并且,inputView在系统键盘的下面的部分,我们调用的系统默认键盘的时候,我们看到的部分就是这个InputView(输入视图),而这个InputAccessoryView就是键盘顶部的一个部分,当我Nil的时候则不显示,当我们给这个属性赋值的时候,就会显示这个我们添加的视图。

    她就像,比如,UITableView的UITableViewHeaderView的那部分视图,如果不设置就看不到,如果设置就可以看到。

    当然,仅仅有这些还是不够的,我们还要为我们自定的键盘中的按键添加对应的响应函数。

    THE END!

  • 相关阅读:
    前端性能优化方法
    软件测试十大原则
    CSRF攻击【转载】
    XSS攻击(出现的原因、预防措施......)
    python 连接MySQL数据库
    《快消品营销人的第一本书》
    python 格式化输出日志记录
    python 安装cv2
    测试用例设计的策略
    【转】APP功能测试要领
  • 原文地址:https://www.cnblogs.com/xingchen/p/2157446.html
Copyright © 2020-2023  润新知