http://www.lxweimin.com/p/9d7d246bd350
IQKeyboardManager是iOS中解決鍵盤彈起遮擋UITextField/UITextView的一種很實用的工具。無需輸入任何代碼,不需要額外的設置。使用IQKeyboardManager的你只需要將源文件添加到項目。
這里附上下載鏈接:https://github.com/hackiftekhar/IQKeyboardManager
IQKeyboardManager支持Objective-C和swift,這里建議實用Cocoapod安裝,很方便管理。
簡單總結一下IQKeyboardManager最重要的功能有以下幾點:
1.當鍵盤遮擋輸入文本框的時候,自動上移View,使被遮擋的部分自動處于鍵盤的上方。
function1.gif
)
導入IQKeyboardManager后,默認所有的頁面都有了這個功能,如果你在哪一個界面不想有這個效果可以在當前界面控制器的生命周期方法中進行設置:
#import
-
(void)viewWillAppear:(BOOL)animated{
[super
viewWillAppear:animated];
[IQKeyboardManager
sharedManager].enable = NO;
}
-
(void)viewWillDisappear:(BOOL)animated{
[super
viewWillDisappear:animated];
[IQKeyboardManager
sharedManager].enable = YES;
}
或者在
AppDelegate中注冊方法:
-
(BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[IQKeyboardManager
sharedManager] disableInViewControllerClass:[ViewController class]];
returnYES;
}
2.在鍵盤上會自動添加一個工具條,工具條上有左箭頭和右箭頭用來切換的輸入文本框,還有完成按鈕用來收回鍵盤。
function2.gif
你也可以不使用這個自動工具條,設置的代碼如下:
[IQKeyboardManagersharedManager].enableAutoToolbar = NO;
3.可以將鍵盤上的return按鍵,變為Next/Done按鍵,默認最后一個UITextField/UITextView的鍵盤return鍵變為Done。
順序是按照創建控件的先后順序,而不是從上到下的擺放順序。
function3.gif
設置的代碼如下:
#import
@implementationViewController
{
IQKeyboardReturnKeyHandler* returnKeyHandler;
}
-(void)viewDidLoad
{
[super viewDidLoad];
returnKeyHandler= [[IQKeyboardReturnKeyHandler alloc] initWithViewController:self];
}
4.設置點擊背景收回鍵盤。
-(void)viewDidLoad {
[super viewDidLoad];
[IQKeyboardManager sharedManager].shouldResignOnTouchOutside = YES;
}
5.如果你的視圖有導航欄,你不想上移View時,UINavigationBar消失,如function3.gif所示,你也可以進行相應設置:
如果你使用的是storyboard or xib,只需將當前視圖視圖控制器中的UIView class變為UIScrollView。
如果你使用的是代碼,你就需要覆蓋UIViewController中的'-(void)loadView'
方法:
-(void)loadView
{
UIScrollView *scrollView =[[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.view = scrollView;
}
原文鏈接:http://www.lxweimin.com/p/9d7d246bd350