完美实现自定义软键盘.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
完美实现自定义软键盘

感谢alan转载的文章给的灵感。 /bbs/read.php?tid-3999.html 思路: 1.用静态方法找到应用程序当前view(window)中的UIKeyboard的view 2.在键盘的view上帖上自己的view,(精彩了,这个自己的view就是你自己键盘,任意发挥,什么类型键盘都可以做了) 3.根据需要调整系统键盘的大小以满足你想要的尺寸 4.给自己的键盘view上的button添加方法,实现功能 主要代码: 添加自身类为键盘事件的观察者 复制代码 [[NSNotificationCenter defaultCenter] addObserver:self ???????????????????????????????????????????? selector:@selector(keyboardWillShow:) ???????????????????????????????????????????????? name:UIKeyboardWillShowNotification ?????????????????????????????????????????????? object:nil]; 核心思路代码: 复制代码 - (void)keyboardWillShow:(NSNotification *)note {?? ????UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];//知识点 ????for(int i=0; i[tempWindow.subviews count]; i++) ????{ ????????keyboard = [tempWindow.subviews objectAtIndex:i]; ????????if([[keyboard description] hasPrefix:@UIKeyboard] == YES) ????????{ ????????????[keyboard setFrame:CGRectMake(0, 460, 320, 345)]; ????????????[self congfigKeypad]; ???????????? ????????????[keyboard addSubview:keyPadView1]; ???????????? ????????} ????} } 比如配置方法可以是这样: 复制代码 -(void)congfigKeypad { ?? SearBtn *one = [[SearBtn alloc] initWithFrame:CGRectMake(81, 3, kNumPadW, kNumPadH) index:1 ContextString:@1 type:kNumPadType]; ????[one setImage:[UIImage imageNamed:@1.png] forState:UIControlStateNormal]; ????[one addTarget:self action:@selector(buttonClickAtIndex:) forControlEvents:UIControlEventTouchUpInside]; ????????//......略 } 添加NSMutalbeString作为文本域字串的容器,点击button后append的button对应的字串。 复制代码 - (void)buttonClickAtIndex:(id)sender { ????SearBtn *btnItem = (SearBtn*)sender; ????NSString *str = btnItem-btnText; ????[s_text appendString:str]; ????[sBar setText:s_text]; } ; 再实现一个deleteChar的方法作为退格键 思路: 复制代码 if ([s_text length] 0) ????{ ????????NSRange rang; ????????rang.location = [s_text length] - 1; ????????rang.length = 1; ????????[s_text deleteCharactersInRange:rang]; ????} 现在点击各种文本域,应该就可以现实自己的键盘了。 继续优化 用textfield的代理方法控制键盘的字串类型,长度,和响应消失 [ 此帖被evangel在2009-12-17 22:3

文档评论(0)

youkao3 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档