淺談IQKeyboardManager第三方庫的使用

QKeyboardManager是iOS中解決鍵盤彈起遮擋UITextField/UITextView的一種很實用的工具。無需輸入任何代碼,不需要額外的設置。使用IQKeyboardManager的你只需要將源文件添加到項目。

這里附上下載鏈接:https://github.com/hackiftekhar/IQKeyboardManager

IQKeyboardManager支持Objective-C和swift,這里建議實用Cocoapod安裝,很方便管理。

簡單總結(jié)一下IQKeyboardManager最重要的功能有以下幾點:

1.當鍵盤遮擋輸入文本框的時候,自動上移View,使被遮擋的部分自動處于鍵盤的上方。

導入IQKeyboardManager后,默認所有的頁面都有了這個功能,如果你在哪一個界面不想有這個效果可以在當前界面控制器的生命周期方法中進行設置:

#import

- (void)viewWillAppear:(BOOL)animated{[superviewWillAppear:animated]; [IQKeyboardManager sharedManager].enable=NO;}- (void)viewWillDisappear:(BOOL)animated{[superviewWillDisappear:animated]; [IQKeyboardManager sharedManager].enable=YES;}

或者在 AppDelegate中注冊方法:

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {? [[IQKeyboardManager sharedManager] disableInViewControllerClass:[ViewController class]];returnYES;}

2.在鍵盤上會自動添加一個工具條,工具條上有左箭頭和右箭頭用來切換的輸入文本框,還有完成按鈕用來收回鍵盤。


你也可以不使用這個自動工具條,設置的代碼如下:

[IQKeyboardManager sharedManager].enableAutoToolbar=NO;

3.可以將鍵盤上的return按鍵,變?yōu)镹ext/Done按鍵,默認最后一個UITextField/UITextView的鍵盤return鍵變?yōu)镈one。順序是按照創(chuàng)建控件的先后順序,而不是從上到下的擺放順序。


設置的代碼如下:

#import

@implementationViewController{? ? IQKeyboardReturnKeyHandler *returnKeyHandler;}- (void)viewDidLoad{? ? [superviewDidLoad];? ? returnKeyHandler = [[IQKeyboardReturnKeyHandler alloc] initWithViewController:self];}

4.設置點擊背景收回鍵盤。

- (void)viewDidLoad {? ? [superviewDidLoad];? ? [IQKeyboardManager sharedManager].shouldResignOnTouchOutside=YES;}

5.如果你的視圖有導航欄,你不想上移View時,UINavigationBar消失,如function3.gif所示,你也可以進行相應設置:

如果你使用的是storyboard or xib,只需將當前視圖視圖控制器中的UIView class變?yōu)閁IScrollView。

圖片.png

如果你使用的是代碼,你就需要覆蓋UIViewController中的'-(void)loadView' 方法:

-(void)loadView{UIScrollView*scrollView = [[UIScrollViewalloc] initWithFrame:[[UIScreenmainScreen] bounds]];self.view= scrollView;}

以上就是本人對IQKeyboardManager的功能簡單理解,這個第三方庫還有一些其他不怎么常用的功能,以后用到會繼續(xù)更新。

此文純做記錄

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容