1. 程式人生 > >[iOS 第三方庫介紹]自動處理鍵盤事件的第三方庫 IQKeyboardManager

[iOS 第三方庫介紹]自動處理鍵盤事件的第三方庫 IQKeyboardManager

**摘要**
我們寫介面要考慮很多使用者體驗問題,鍵盤事件的響應就是比較麻煩的一種。我們需要監聽鍵盤事件,考慮點選背景收起鍵盤、考慮鍵盤遮擋輸入框問題等等,而且每個介面都要做這麼一套。這個庫幫我們解決了這個事情。

這個庫是一個單例,它一旦生效,全專案任何介面都有效。讓它生效的程式碼可以寫在任意位置,我寫在AppDelegate裡。

使用方法

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

    IQKeyboardManager *manager = [IQKeyboardManager sharedManager];
    manager.enable
= YES; manager.shouldResignOnTouchOutside = YES; manager.shouldToolbarUsesTextFieldTintColor = YES; manager.enableAutoToolbar = NO; return YES; }

enable控制整個功能是否啟用。

shouldResignOnTouchOutside控制點選背景是否收起鍵盤。

shouldToolbarUsesTextFieldTintColor 控制鍵盤上的工具條文字顏色是否使用者自定義。

enableAutoToolbar控制是否顯示鍵盤上的工具條。

以上設定,就啟用了這個庫。

使用方法,程式碼如下:


#import "ViewController.h"

@interface ViewController ()

@property (nonatomic, strong) IQKeyboardReturnKeyHandler    *returnKeyHandler;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.returnKeyHandler = [[IQKeyboardReturnKeyHandler alloc] initWithViewController:self
]; self.returnKeyHandler.lastTextFieldReturnKeyType = UIReturnKeyDone; self.returnKeyHandler.toolbarManageBehaviour = IQAutoToolbarBySubviews; } - (void)dealloc { self.returnKeyHandler = nil; } @end

設定returnKeyHandler,可以點選鍵盤上的next鍵,自動跳到下一個輸入框。最後一個輸入框點選done自動收起鍵盤。

執行後,可以看到輸入框隨著鍵盤的彈出自動上下浮動。點選背景,鍵盤收起。全自動了。

這個庫預設支援UITextField、UITextView、UIWebView、UIScrollView、UITableView、UICollectionView

最後要注意一點,它可以自動計算多個textField之間的先後順序,排列依據是看addSubView的先後順序。