customKeyboard.gif
一叶雹、CustomKeyboardView :顯示的鍵盤view
二解阅、keyModel:鍵盤model柄瑰,定義鍵盤字母枚舉類型闸氮, 存儲(chǔ)鍵盤上btn顯示的數(shù)據(jù)源。
三教沾、KeyboardModeHandler:為處理各種類型鍵盤數(shù)據(jù)源蒲跨,即為MVVM中的ViewModel層。
四授翻、KeyBoardCell:自定義鍵盤cell或悲,定義鍵盤操作枚舉類型(輸入數(shù)字孙咪、輸入小數(shù)點(diǎn)、輸入運(yùn)算符等)巡语。
五翎蹈、WaterFallLayout:鍵盤的瀑布流。
六男公、使用
UITextField 和 UITextView 添加自定義鍵盤
CustomKeyboardView *keyBoardView = [[CustomKeyboardView alloc] initWithKeyboardType:sender.tag inputSource:_tf];
keyBoardView.inputText = _tf.text;
_tf.inputView = keyBoardView;
keyBoardView.closeKeyboardBlock = ^{
//TODO
[_tf resignFirstResponder];
};
keyBoardView.confirmBlock = ^{
//TODO
[_tf resignFirstResponder];
};
UISearchBar 添加自定義鍵盤
UITextField *searchTF = [_searchBar valueForKeyPath:@"_searchField"];
CustomKeyboardView *keyboardView = [[CustomKeyboardView alloc] initWithKeyboardType:KeyBoardTypeNormal inputSource:searchTF];
searchTF.inputView = keyboardView;
keyboardView.closeKeyboardBlock = ^{
//TODO
[_searchBar resignFirstResponder];
forState:UIControlStateNormal];
};
keyboardView.confirmBlock = ^{
//TODO
[_searchBar resignFirstResponder];
};
七荤堪、注意點(diǎn):記得實(shí)現(xiàn)UITextFieldDelegate代理方法
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
return YES;
}