- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
完美实现自定义软键盘
感谢alan转载的文章给的灵感。/bbs/read.php?tid-3999.html思路:1.用静态方法找到应用程序当前view(window)中的UIKeyboard的view2.在键盘的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
您可能关注的文档
最近下载
- 省级优秀课件人教版(2019)高中英语必修第一册 Unit 5 Languages Around the World Reading and Thinking.pptx VIP
- Unit1 School life 单元主题阅读、完形及满分范文15篇-2024-2025学年六年级英语上册重难点讲练全攻略(牛津上海版2024).docx
- 19BJ5-1 屋面详图图集.pdf
- 变电运行标准化作业指导书.pdf VIP
- 《流行声乐演唱》课件——1课程介绍、理论知识、演唱特点以及与传统唱法的区别.pptx VIP
- 气候归因周天军.ppt
- 小学科学新教科版一年级上册第二单元第2课《发现生长》教案2(2024秋).doc
- 2022新人教版数学五年级上册第一单元《小数乘法》教学设计.docx
- 标准化病人SP病史采集培训(问诊)教学讲义课件.pptx VIP
- 少儿美术-玉兰花.pptx
文档评论(0)