天天看點

iOS開發之

比較閑,整理了之前用過的一個第三方庫——鍵盤處理神器

IQKeyboardManager

平常在開發中,用到輸入框的地方不勝其數,當輸入框位于螢幕底部時,彈起的鍵盤很可能覆寫輸入框,導緻使用者看不到輸入結果,體驗較差......

IQKeyboardManager

可以很簡單快捷的解決鍵盤遮蓋輸入框的問題,接下來就一起來學習一下吧。
  • 先簡單認識下 IQKeyboardManager

    GitHub 位址:GitHub 位址

  • 官方示意效果圖如下:

官方示意效果圖

再貼一下自己做的簡單效果圖☺️

先說下我的 Xcode 版本是:Version 8.1 (8B62),簡單起見直接在 Main.storyboard 中拖入 7 個UITextField, 每個 UITextField 都設有占位文字。

簡單效果圖☺️

以下是 IQKeyboardManager 的一些具體使用

1. 用 Cocoapod 導入或直接下載下傳拖進去,這裡友善起見直接用 Cocoapod 導入。

IQKeyboardManager 的 GitHub位址:IQKeyboardManager 的 GitHub 位址

2. 在 AppDelegate.m 中導入頭檔案

#import <IQKeyboardManager/IQKeyboardManager.h> 
           

3. 在 AppDelegate 中設定全局屬性

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    IQKeyboardManager *keyboardManager = [IQKeyboardManager sharedManager]; // 擷取類庫的單例變量

    keyboardManager.enable = YES; // 控制整個功能是否啟用

    keyboardManager.shouldResignOnTouchOutside = YES; // 控制點選背景是否收起鍵盤

    keyboardManager.shouldToolbarUsesTextFieldTintColor = YES; // 控制鍵盤上的工具條文字顔色是否使用者自定義

    keyboardManager.toolbarManageBehaviour = IQAutoToolbarBySubviews; // 有多個輸入框時,可以通過點選Toolbar 上的“前一個”“後一個”按鈕來實作移動到不同的輸入框

    keyboardManager.enableAutoToolbar = YES; // 控制是否顯示鍵盤上的工具條

    keyboardManager.shouldShowTextFieldPlaceholder = YES; // 是否顯示占位文字

    keyboardManager.placeholderFont = [UIFont boldSystemFontOfSize:17]; // 設定占位文字的字型

    keyboardManager.keyboardDistanceFromTextField = 10.0f; // 輸入框距離鍵盤的距離

    return YES;
}
           

4. 若某個類不需要使用 IQKeyboardManager,可以在這個類中這樣設定

- (void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];
   [IQKeyboardManager sharedManager].enable = NO;
}

  - (void)viewWillDisappear:(BOOL)animated {
  [super viewWillDisappear:animated]; 
  [IQKeyboardManager sharedManager].enable = YES;
}
           

5. 常用屬性介紹

  • sharedManager

    :擷取類庫的單例變量
  • enable

    :項目使用不使用 IQKeyboardManager 這個類庫,當然,某些頁面可以根據需要單獨設定
  • shouldResignOnTouchOutside

    :點選背景頁面時是否收起鍵盤
  • shouldToolbarUsesTextFieldTintColor

    :控制鍵盤上的工具條文字顔色是否使用者自定義,預設為 NO
  • toolbarManageBehaviour

    :有多個輸入框時,可以通過點選Toolbar 上的“前一個” “後一個”按鈕來實作移動到不同的輸入框
  • enableAutoToolbar

    :是否顯示鍵盤上的工具條
  • shouldShowTextFieldPlaceholder

    :是否顯示占位文字(如果輸入框有占位文字,那麼在 Toolbar 中預設會顯示出來)
  • placeholderFont

    :占位文字的字型大小
  • keyboardDistanceFromTextField

    :輸入框距離鍵盤的距離

6. 再推薦幾篇不錯的相關文章

  • iOS開發第三方庫一 IQKeyboardManager
  • 自動處理鍵盤事件的第三方庫 IQKeyboardManager
  • iOS開發之處理鍵盤問題神器IQKeyboardManager