第三方庫(kù) IQKeyboardManager使用之整理

IQKeyboardManager是iOS中解決鍵盤彈起遮擋UITextField/UITextView的一種很實(shí)用的工具。
之前我一直是添加手勢(shì)去 收起鍵盤 或者 令視圖退出編輯狀態(tài), 現(xiàn)在使用這個(gè)則無需輸入任何代碼,不需要額外的設(shè)置。

這個(gè)庫(kù)默認(rèn)支持UITextField、UITextView、UIWebView、UIScrollView、UITableView、UICollectionView.

使用IQKeyboardManager, 只需要將源文件添加到項(xiàng)目。


由于這個(gè)庫(kù)是一個(gè)單例,它一旦生效,全項(xiàng)目任何界面都有效。
控制自動(dòng)鍵盤處理事件在整個(gè)項(xiàng)目?jī)?nèi)是否啟用生效, 則需在AppDelegate里設(shè)置.

#import "IQKeyboardManager.h"

iOS delegate內(nèi)應(yīng)用入口:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 關(guān)閉設(shè)置為NO, 默認(rèn)值為NO.
    [IQKeyboardManager sharedManager].enable = YES;
}

其他相關(guān)應(yīng)用如下展示:

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

    // 使用智能鍵盤
    IQKeyboardManager *manager = [IQKeyboardManager sharedManager];
    // 控制整個(gè)功能是否啟用
    manager.enable = YES; 
    // 控制是否顯示鍵盤上的自動(dòng)工具條,當(dāng)需要支持內(nèi)聯(lián)編輯(Inline Editing), 這就需要隱藏鍵盤上的工具條(默認(rèn)打開) 
    manager.enableAutoToolbar = NO; 
    // 啟用手勢(shì)觸摸:控制點(diǎn)擊背景是否收起鍵盤。
    manager.shouldResignOnTouchOutside = YES; 
    // 是否顯示提示文字
    manager.shouldShowTextFieldPlaceholder = YES;
    // 控制鍵盤上的工具條文字顏色是否用戶自定義,(使用TextField的tintColor屬性IQToolbar,否則色調(diào)的顏色是黑色 )
    manager.shouldToolbarUsesTextFieldTintColor = YES; 
    
    return YES;
}

導(dǎo)入IQKeyboardManager后,默認(rèn)所有的頁(yè)面都有了這個(gè)功能,如果你在哪一個(gè)界面不想有這個(gè)效果可以在當(dāng)前界面控制器的生命周期方法中進(jìn)行設(shè)置:

#import "IQKeyboardReturnKeyHandler.h"
@property (nonatomic, strong) IQKeyboardReturnKeyHandler  *returnKeyHandler;

最后一個(gè)TextField的返回值類型UIReturnKeyDone:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.returnKeyHandler = [[IQKeyboardReturnKeyHandler alloc] initWithViewController:self];
    // 最后一個(gè)TextField的返回值類型
    self.returnKeyHandler.lastTextFieldReturnKeyType = UIReturnKeyDone;
}

如果當(dāng)某一個(gè)輸入框特定不需要鍵盤上的工具條:

textField.inputAccessoryView = [[UIView alloc] init];

需要在某個(gè)頁(yè)面禁止自動(dòng)鍵盤處理事件響應(yīng):

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    //  打開鍵盤事件響應(yīng)
    [IQKeyboardManager sharedManager].enable = YES;
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    //  關(guān)閉鍵盤事件響應(yīng)
    [IQKeyboardManager sharedManager].enable = NO;
}
- (void)dealloc {
    self.returnKeyHandler = nil;
}

另外IQKeyboardManager支持屏幕旋轉(zhuǎn)功能。

最后要注意一點(diǎn),它可以自動(dòng)計(jì)算多個(gè)textField之間的先后順序,排列依據(jù)是看addSubView的先后順序。

這些目前是最常用的,夠用了,日后慢慢解鎖新用法~

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

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,206評(píng)論 4 61
  • 寫作原因:看三方庫(kù)源碼總不知道該看什么或者能學(xué)到什么,寫文章無疑是最好的藥;并且我在簡(jiǎn)書上搜了一下相關(guān)文章都不是很...
    Thebloodelves閱讀 12,597評(píng)論 32 59
  • 813 地雷復(fù) 六爻動(dòng) 【上六:復(fù)變頤】?jī)措U(xiǎn) 【上六:迷復(fù),兇,有災(zāi)眚。用行師,終有大敗。以其國(guó),君兇,至于十年,...
    智囊團(tuán)閱讀 389評(píng)論 0 0
  • 又到了我最不擅長(zhǎng)的寫文字時(shí)段,今天來給大家介紹希臘的一個(gè)島嶼和一個(gè)從事天然海綿事業(yè)長(zhǎng)達(dá)200年歷史的家族。 卡林諾...
    AJessica綠野芳蹤閱讀 1,473評(píng)論 0 1
  • 今天當(dāng)了一回考官,參與招考20名社會(huì)工作者。下午整整4個(gè)小時(shí)的時(shí)間,聆聽了40多名考生的面試回答。因?yàn)樯婕暗娇忌?..
    花香兩岸閱讀 227評(píng)論 0 0

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