iOS中的UIKeyboard鍵盤視圖使用方法小結_IOS

來源:互聯網
上載者:User

一、鍵盤風格  
UIKit架構支援8種風格鍵盤。

複製代碼 代碼如下:

typedef enum { 
    UIKeyboardTypeDefault,                // 預設鍵盤:支援所有字元 
    UIKeyboardTypeASCIICapable,           // 支援ASCII的預設鍵盤 
    UIKeyboardTypeNumbersAndPunctuation,  // 標準電話鍵盤,支援+*#等符號 
    UIKeyboardTypeURL,                    // URL鍵盤,有.com按鈕;只支援URL字元 
    UIKeyboardTypeNumberPad,              //數字鍵台 
    UIKeyboardTypePhonePad,               // 電話鍵盤 
    UIKeyboardTypeNamePhonePad,           // 電話鍵盤,也支援輸入人名字 
    UIKeyboardTypeEmailAddress,           // 用於輸入電子郵件地址的鍵盤 
} UIKeyboardType; 

用法用例:
複製代碼 代碼如下:

textView.keyboardtype = UIKeyboardTypeNumberPad;

二、鍵盤外觀
複製代碼 代碼如下:

typedef enum { 
    UIKeyboardAppearanceDefault,    // 預設面板:淺灰色 
    UIKeyboardAppearanceAlert,      //深灰/石墨色 
} UIKeyboardAppearance;

用法用例:
複製代碼 代碼如下:

textView.keyboardAppearance=UIKeyboardAppearanceDefault;

三、斷行符號鍵
複製代碼 代碼如下:

typedef enum { 
    UIReturnKeyDefault,  //預設:灰色按鈕,標有Return
    UIReturnKeyGo,  //標有Go的藍色按鈕
    UIReturnKeyGoogle,  //標有Google的藍色按鈕,用於搜尋
    UIReturnKeyJoin,  //標有Join的藍色按鈕
    UIReturnKeyNext,  //標有Next的藍色按鈕
    UIReturnKeyRoute,  //標有Route的藍色按鈕
    UIReturnKeySearch,  //標有Search的藍色按鈕
    UIReturnKeySend,  //標有Send的藍色按鈕
    UIReturnKeyYahoo,  //標有Yahoo!的藍色按鈕,用於搜尋
    UIReturnKeyDone,  //標有Done的藍色按鈕
    UIReturnKeyEmergencyCall,  //緊急電話按鈕
} UIReturnKeyType; 

用法用例:
複製代碼 代碼如下:

textView.returnKeyType=UIReturnKeyGo;

四、自動大寫
複製代碼 代碼如下:

typedef enum { 
    UITextAutocapitalizationTypeNone, //不自動大寫 
    UITextAutocapitalizationTypeWords, //單字首大寫 
    UITextAutocapitalizationTypeSentences, //句子首字母大寫 
    UITextAutocapitalizationTypeAllCharacters, //所有字母大寫 
} UITextAutocapitalizationType; 

用法用例:
複製代碼 代碼如下:

textField.autocapitalizationType = UITextAutocapitalizationTypeWords;

五、自動校正
複製代碼 代碼如下:

typedef enum { 
    UITextAutocorrectionTypeDefault,//預設 
    UITextAutocorrectionTypeNo,//不自動校正 
    UITextAutocorrectionTypeYes,//自動校正 
} UITextAutocorrectionType;

用法用例:
複製代碼 代碼如下:

textField.autocorrectionType = UITextAutocorrectionTypeYes;

六、安全文本輸入
複製代碼 代碼如下:

textView.secureTextEntry=YES;

開啟安全輸入主要是用於密碼或一些私人資料的輸入,此時會禁用自動校正和自此緩衝。
七、開啟鍵盤遮住View的問題解決方案
預設情況下開啟鍵盤會遮住下面的view,帶來一點點困擾,不過這不是什麼大問題,我們使用點小小的手段就可以解決。
首先我們要知道鍵盤的高度是固定不變的,不過在IOS 5.0 以後鍵盤的高度貌似不是216了,不過不要緊,我們調整調整就是了:
我們採取的方法就是在textField(有可能是其他控制項)接收到彈出鍵盤事件時把self.view整體上移216px了(我們就以iPhone豎屏為例了)。
首先我們要設定textField的代理,我們就設為當前控制器了。
複製代碼 代碼如下:

textField,delegate=self;

然後我們在當前控制器實現下面三個委託方法:
複製代碼 代碼如下:

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ //當點觸textField內部,開始編輯都會調用這個方法。textField將成為first responder  
       NSTimeInterval animationDuration = 0.30f;     
      CGRect frame = self.view.frame; 
      frame.origin.y -=216; 
      frame.size.height +=216; 
      self.view.frame = frame; 
       [UIView beginAnimations:@"ResizeView" context:nil]; 
       [UIView setAnimationDuration:animationDuration]; 
       self.view.frame = frame;                 
       [UIView commitAnimations];                 


複製代碼 代碼如下:

- (BOOL)textFieldShouldReturn:(UITextField *)textField  
{//當使用者按下ruturn,把焦點從textField移開那麼鍵盤就會消失了 
        NSTimeInterval animationDuration = 0.30f; 
        CGRect frame = self.view.frame;     
        frame.origin.y +=216;       
        frame.size. height -=216;    
        self.view.frame = frame; 
    //self.view移回原位置   
    [UIView beginAnimations:@"ResizeView" context:nil]; 
    [UIView setAnimationDuration:animationDuration]; 
        self.view.frame = frame;                 
        [UIView commitAnimations]; 
        [textField resignFirstResponder];    
}        

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.