当前位置: 代码迷 >> Iphone >> 给iphone的键盘加下UITextField
  详细解决方案

给iphone的键盘加下UITextField

热度:4   发布时间:2016-04-25 06:25:15.0
给iphone的键盘加上UITextField
原文地址:给键盘加上UITextField
http://www.aisidechina.com/forum/viewthread.php?tid=914
效果:


.h文件:
#import <UIKit/UIKit.h>@interface ScoreBar : UIToolbar {	UITextField *nameTextField;	UILabel *scoreLabel;}@property (nonatomic, retain) UITextField *nameTextField; //toolbar上的输入框@property (nonatomic, retain) UILabel *scoreLabel; //toolbar上的按钮-(void)keyboareWillShow:(NSNotification*)aNotification; //键盘将要出现时调用@end
.m文件
#import "ScoreBar.h"@implementation ScoreBar@synthesize nameTextField;@synthesize scoreLabel;- (id)initWithFrame:(CGRect)frame {    if (self = [super initWithFrame:frame]) {        // Initialization code		self.hidden = YES;		self.tintColor = [UIColor grayColor];               /*                 初始化toolbar上的textField和button               */		......略		/*                 设定UIKeyboardWillShowNotification调用的方法              */		[[NSNotificationCenter defaultCenter] addObserver:self 												 selector:@selector(keyboareWillShow:)													 name:UIKeyboardWillShowNotification 												   object:nil];    }    return self;}- (void)drawRect:(CGRect)rect {	[super drawRect:rect];//调用父类的方法,这个一定要写    // Drawing code}- (void)dealloc {      .......}-(void)keyboareWillShow:(NSNotification*)aNotification{        /* 取得键盘的frame */	NSDictionary *info = [aNotification userInfo];	NSValue *aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey];	CGRect frame;	[aValue getValue:&frame];        //设定toolbar的frame	        self.frame = CGRectMake(frame.origin.x, frame.origin.y-44, frame.size.width, 44);		UIWindow *tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];	UIView *keyboard;	/*遍历windwos中所有的view,取得键盘view*/	for(int i = 0;i<tempWindow.subviews.count;i++){		keyboard = [tempWindow.subviews objectAtIndex:i];				if([[NSString stringWithUTF8String:object_getClassName(keyboard)] isEqualToString:@"UIKeyboard"]){			self.hidden = NO;			[keyboard addSubview:self];			[keyboard setBackgroundColor:[UIColor blackColor]];		}	}}@end
初始化toolbar:
ScoreBar *scoreBar = [[ScoreBar alloc] initWithFrame:CGRectMake(0, 0, 480, 44)];scoreBar.nameTextField.delegate = self;
使用becomeFirstResponder调出键盘:
[scoreToolBar.nameTextField becomeFirstResponder];
  相关解决方案