iPhone應用之自訂鍵盤開發代碼

來源:互聯網
上載者:User

iphone應用中的自訂鍵盤是本文要介紹的內容,在罈子裡逛了一圈,看了一篇自訂鍵盤的文章,於是與大家分享一下,我相信是懶人推動了世界的發展,既然iphone有了自己的軟體盤,我們什麼還要自己實現其功能呢。so,只要寄生在上面就行了。不多說,來看詳細內容。

思路:

1、用靜態方法找到應用程式當前view(window)中的UIKeyboard的view

2、在鍵盤的view上帖上自己的view,精彩了,這個自己的view就是你自己鍵盤,任意發揮,什麼類型鍵盤都可以做了)

3、根據需要調整系統鍵盤的大小以滿足你想要的尺寸

4、給自己的鍵盤view上的button添加方法,實現功能

主要代碼:

添加自身類為鍵盤事件的觀察者

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

核心思路代碼:

 
  1. - (void)keyboardWillShow:(NSNotification *)note   
  2. {    
  3.     UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];//知識點  
  4.     for(int i=0; i<[tempWindow.subviews count]; i++)   
  5.     {  
  6.         keyboard = [tempWindow.subviews objectAtIndex:i];  
  7.         if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)  
  8.         {  
  9.             [keyboard setFrame:CGRectMake(0, 460, 320, 345)];  
  10.             [self congfigKeypad];  
  11.               
  12.             [keyboard addSubview:keyPadView1];  
  13.               
  14.         }  
  15.     }  

比如配置方法可以是這樣:

 
  1. -(void)congfigKeypad  
  2. {  
  3.    SearBtn *one = [[SearBtn alloc] initWithFrame:CGRectMake(81, 3, kNumPadW, kNumPadH) index:1 ContextString:@"1" type:kNumPadType];  
  4.     [one setImage:[UIImage imageNamed:@"1.png"] forState:UIControlStateNormal];  
  5.     [one addTarget:self action:@selector(buttonClickAtIndex:) forControlEvents:UIControlEventTouchUpInside];  
  6.         //......略  

添加NSMutalbeString作為文本域字串的容器,點擊button後append的button對應的字串。

 
  1. - (void)buttonClickAtIndex:(id)sender  
  2. {  
  3.     SearBtn *btnItem = (SearBtn*)sender;  
  4.     NSString *str = btnItem->btnText;  
  5.     [s_text appendString:str];  
  6.     [sBar setText:s_text];  

再實現一個deleteChar的方法作為退格鍵

思路:

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

現在點擊各種文本域,應該就可以現實自己的鍵盤了。

繼續最佳化

用textfield的代理方法修飾鍵盤的字串類型,長度,和響應消失。

 

小結:iPhone應用之自訂鍵盤開發代碼的內容介紹完了,希望通過本文的學習能對你有所協助!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.