转载

iOS自定义数字键盘

第一种方式: 在获得键盘弹出通知时,在键盘的那个 UIView 上添加一个自定义的 UIButto。

#define KEY_WIDTH 106

#define KEY_HEIGHT 53

#pragma mark – 处理 TextField 响应事件

– ( void )editingDidBegin:( UITextField *)textF {

[ self . textF becomeFirstResponder ];

}

//3. 实现通知处理

– ( void )handleKeyboardWillHide:( NSNotification *)notification

{

if ( doneInKeyboardButton . superview )

{

[ doneInKeyboardButton removeFromSuperview ];

}

}

– ( void )handleKeyboardDidShow:( NSNotification *)notification

{

NSDictionary *info = [notification userInfo ];

CGSize kbSize = [[info objectForKey : UIKeyboardFrameEndUserInfoKey ] CGRectValue ]. size ;

CGFloat normalKeyboardHeight = kbSize. height ;

int cnt = [[ UIApplication sharedApplication ] windows ]. count ;

UIWindow * tempWindow = [[[ UIApplication sharedApplication ] windows ] objectAtIndex :cnt- 1 ];

// create custom button

if ( doneInKeyboardButton == nil )

{

doneInKeyboardButton = [ UIButton buttonWithType : UIButtonTypeCustom ];         

doneInKeyboardButton . frame = CGRectMake ( 18 , tempWindow. frame . size . height 53 , 106 , 53 );

doneInKeyboardButton . adjustsImageWhenHighlighted = NO ;

[ doneInKeyboardButton setImage :[ UIImage imageNamed : @”done.png” ] forState : UIControlStateNormal ];

[ doneInKeyboardButton setImage :[ UIImage imageNamed : @”done.png” ] forState : UIControlStateHighlighted ];

[ doneInKeyboardButton addTarget : self action : @selector (finishAction) forControlEvents : UIControlEventTouchUpInside ];

}

// locate keyboard view

if ( doneInKeyboardButton . superview == nil )

{

// 注意这里直接加到 window

[tempWindow addSubview : doneInKeyboardButton ];

}

}  

#pragma mark – 处理视图响应事件

– ( void )touchesBegan:( NSSet *)touches withEvent:( UIEvent *)event {

[ self . textF resignFirstResponder ];

}

-( void )viewWillAppear:( BOOL )animated

{

[ super viewWillAppear :animated];

//1. 先注册通知     [[ NSNotificationCenter defaultCenter ] addObserver : self selector : @selector (handleKeyboardDidShow:) name : UIKeyboardDidShowNotification object : nil ];

[[ NSNotificationCenter defaultCenter ] addObserver : self selector : @selector (handleKeyboardWillHide:) name : UIKeyboardWillHideNotification object : nil ];

}

//2. dealloc 中反注册通知

-( void )dealloc

{

[[ NSNotificationCenter defaultCenter ] removeObserver : self ];

}

第二种方法:自己写一个键盘。:laughing:

原文  http://v2it.win/ios/ios自定义数字键盘/
正文到此结束
Loading...