IQKeyboardManager не отключается

Попытка отключить IQKeyboardManager для конкретного ViewController или для всего приложения не работает.

Мой код AppDelegate:

[[IQKeyboardManager sharedManager] setEnableAutoToolbar:NO];
[[IQKeyboardManager sharedManager] setEnable:NO];
[[IQKeyboardManager sharedManager] disableToolbarInViewControllerClass:[TCChatViewController class]];
[[IQKeyboardManager sharedManager] disableInViewControllerClass:[TCChatViewController class]];

Также пытаюсь отключить в viewWillAppear: :

[[IQKeyboardManager sharedManager] setEnableAutoToolbar:NO];
[[IQKeyboardManager sharedManager] setEnable:NO];

person Dima Cheverda    schedule 23.06.2015    source источник
comment
Не могли бы вы сообщить, что вам действительно нужно и что происходит прямо сейчас?   -  person Mohd Iftekhar Qurashi    schedule 25.06.2015
comment
Я использую IQKeyboardManager через приложение, но мне нужно отключить его для определенного VC, и я могу изменить его настройки. Похоже, настройки меняются, но Менеджер их не использует.   -  person Dima Cheverda    schedule 26.06.2015
comment
Я вижу, что вы делаете правильно, но не знаю, почему у вас возникают проблемы. Поднимите вопрос в системе отслеживания проблем репо и загрузите пример кода.   -  person Mohd Iftekhar Qurashi    schedule 27.06.2015
comment
Ладно, все равно спасибо.   -  person Dima Cheverda    schedule 28.06.2015


Ответы (5)


Отключить IQKeyboard Manager в Objective C

Если вы хотите отключить IQKeyboardManager в конкретном контроллере вашего проекта. Затем добавьте эту строку в свой класс viewController.

 #import "IQKeyboardManager.h"

Теперь в методах View Controller viewDidLoad добавьте приведенную ниже функцию.

[[IQKeyboardManager sharedManager] setEnableAutoToolbar:false];

Теперь, когда вы покидаете контроллер, чтобы ваш IQKeyboardManager включался, когда вы покидаете этот viewController**.

In **viewWillDisappear** Method:-

[[IQKeyboardManager sharedManager] setEnableAutoToolbar:true];

Отключить IQKeyboard Manager в Swift 3.0

import IQKeyboardManagerSwift

 override func viewDidLoad() {
    super.viewDidLoad()
    IQKeyboardManager.sharedManager().enableAutoToolbar = false
    IQKeyboardManager.sharedManager().enable = false
}

 //MARK:- viewWillDisappear
 override func viewWillDisappear(_ animated: Bool) {
    IQKeyboardManager.sharedManager().enableAutoToolbar = true
    IQKeyboardManager.sharedManager().enable = true
}

Отключить диспетчер IQKeyboard в Swift 4.2

import IQKeyboardManagerSwift

 override func viewDidLoad() {
    super.viewDidLoad()
    IQKeyboardManager.shared.enableAutoToolbar = false
    IQKeyboardManager.shared.enable = false
}

 //MARK:- viewWillDisappear
 override func viewWillDisappear(_ animated: Bool) {
    IQKeyboardManager.shared.enableAutoToolbar = true
    IQKeyboardManager.shared.enable = true
}
person Mandeep Singh    schedule 16.11.2016
comment
Это неверно. setEnableAutoToolbar включает/отключает автоматическую панель инструментов IQKeyboardManager, а не IQKeyboardManager в целом. - person tonymontana; 20.10.2017
comment
@mrvincenzo, я просто упоминаю, что он отключит автоматическую панель инструментов IQKeyboardManager из того класса, где я упоминал, что он удалит весь IQKeyboardManager. Скажите, я проверю и отмечу, что если вы хотите отключить IQKeyboardManager в конкретном контроллере вашего проекта. Сначала пойми ответ, а потом скажи кому-нибудь, что ты не прав. - person Mandeep Singh; 23.10.2017

Попробуйте это

Просто поместите строку ниже в свой ViewController viewDidLoad.

[[IQKeyboardManager sharedManager] setEnable:false];

Поместите строку ниже в свой ViewController viewWillDisappear;

[[IQKeyboardManager sharedManager] setEnable:true];
person Kuldeep    schedule 11.08.2017

Проблема заключалась в «классе, реализованном в обоих», потому что библиотека была включена в основное приложение и фреймворк. Итак, я предполагаю, что я устанавливал настройки библиотеки для одной копии, но библиотека читала настройки из другой копии, и моя была проигнорирована.

person Dima Cheverda    schedule 13.08.2015
comment
я не понимаю, пожалуйста, уточните это - person jaskiratjd; 29.09.2016
comment
Модуль @jaskiratjd IQKeyboardManager был связан с основным приложением и моей структурой, поэтому, я думаю, настройки библиотеки были перезаписаны. Надеюсь, это поможет вам. - person Dima Cheverda; 29.09.2016

Попробуйте это

[[IQKeyboardManager sharedManager] setEnable:NO];
[[IQKeyboardManager sharedManager] setEnableAutoToolbar:NO];
[[IQKeyboardManager sharedManager] setShouldResignOnTouchOutside:NO];
person Jirui    schedule 09.08.2019

В Swift 5 это сработало для меня, в частности, vc:

IQKeyboardManager.shared.disabledDistanceHandlingClasses.append(MyController.self)
IQKeyboardManager.shared.disabledToolbarClasses = [MyController.self]
person Lance Samaria    schedule 21.12.2019