iPhone应用之自定义键盘开发代码

移动开发 iOS
本文介绍的是自定义键盘,主要是通过思路来引导和详细的代码来实现键盘的开发,先来看详细内容讲解。

iphone应用中的自定义键盘是本文要介绍的内容,在坛子里逛了一圈,看了一篇自定义键盘的文章,于是与大家分享一下,我相信是懒人推动了世界的发展,既然iphone有了自己的软件盘,我们什么还要自己实现其功能呢。so,只要寄生在上面就行了。不多说,来看详细内容。

思路:

1、用静态方法找到应用程序当前view(window)中的UIKeyboard的view

2、在键盘的view上帖上自己的view,(精彩了,这个自己的view就是你自己键盘,任意发挥,什么类型键盘都可以做了)

3、根据需要调整系统键盘的大小以满足你想要的尺寸

4、给自己的键盘view上的button添加方法,实现功能

主要代码:

添加自身类为键盘事件的观察者

[[NSNotificationCenter defaultCenter] addObserver:self      
 selector:@selector(keyboardWillShow:)         
 name:UIKeyboardWillShowNotification   
 object:nil]; 
  • 1.
  • 2.
  • 3.
  • 4.

核心思路代码:

- (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];  
              
        }  
    }  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

比如配置方法可以是这样:

-(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];  
        //......略  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

添加NSMutalbeString作为文本域字串的容器,点击button后append的button对应的字串。

- (void)buttonClickAtIndex:(id)sender  
{  
    SearBtn *btnItem = (SearBtn*)sender;  
    NSString *str = btnItem->btnText;  
    [s_text appendString:str];  
    [sBar setText:s_text];  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

再实现一个deleteChar的方法作为退格键

思路:

if ([s_text length] > 0)  
    {  
        NSRange rang;  
        rang.location = [s_text length] - 1;  
        rang.length = 1;  
        [s_text deleteCharactersInRange:rang];  
    } 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

现在点击各种文本域,应该就可以现实自己的键盘了。

继续优化

用textfield的代理方法控制键盘的字串类型,长度,和响应消失。

iPhone应用之自定义键盘 

iPhone应用之自定义键盘

小结:iPhone应用之自定义键盘开发代码的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 博客园
相关推荐

2023-06-27 15:02:47

2011-08-11 10:16:23

iPhoneUIView视图

2011-08-11 10:27:37

iPhoneUIView视图

2011-08-10 10:23:20

iPhoneArchivingNSCoder

2011-08-16 19:02:23

iPhone开发绘图

2011-08-11 17:32:51

iPhone视图

2011-08-12 18:18:03

iPhone开发UIPageContr按钮

2011-08-15 18:02:32

iPhone开发表视图

2023-08-10 17:14:52

鸿蒙自定义弹窗

2011-08-18 09:44:33

iPhone SDK仪表控件UIDialView

2011-08-15 10:15:00

iPhone开发警告框

2011-08-12 11:31:46

iPhoneUIView动画

2011-08-18 17:32:55

iPhone开发Table Cell

2011-08-19 14:27:29

iPhone开发

2009-06-08 20:13:36

Eclipse自定义控

2011-12-05 15:02:21

Knockout

2009-06-24 15:13:36

自定义JSF组件

2011-12-26 10:11:08

JSP

2011-08-12 10:16:10

iPhone通讯录联系人

2022-02-21 15:16:30

HarmonyOS鸿蒙操作系统
点赞
收藏

51CTO技术栈公众号