iOS自動處理鍵盤事件的第三方庫:IQKeyboardManager

jopen 9年前發布 | 213K 次閱讀 iOS開發 移動開發 IQKeyboardManager

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

這個庫的下載地址:https://github.com/hackiftekhar/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的先后順序。


 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!