自定义软键盘

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

软键盘使用的几种方法:

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!

你可能感兴趣的:(自定义)