這個庫的下載地址:https://github.com/hackiftekhar/IQKeyboardManagergit
這個庫是一個單例,它一旦生效,全項目任何界面都有效。讓它生效的代碼能夠寫在任意位置,我寫在AppDelegate裏。github
- (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控制整個功能是否啓用。
app
shouldResignOnTouchOutside控制點擊背景是否收起鍵盤。ide
shouldToolbarUsesTextFieldTintColor 控制鍵盤上的工具條文字顏色是否用戶自定義。工具
enableAutoToolbar控制是否顯示鍵盤上的工具條。atom
以上設置,就啓用了這個庫。spa
使用方法,代碼以下:
code
#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自動收起鍵盤。orm
運行後,能夠看到輸入框隨着鍵盤的彈出自動上下浮動。點擊背景,鍵盤收起。全自動了。it
這個庫默認支持UITextField、UITextView、UIWebView、UIScrollView、UITableView、UICollectionView
最後要注意一點,它能夠自動計算多個textField之間的前後順序,排列依據是看addSubView的前後順序。