it-roy-ru.com

Как скрыть панель инструментов в IQKeyboardManager iOS Swift 3

Я использую библиотеку IQKeyboardManger для прокрутки текстовых полей, когда начал печатать с помощью клавиатуры, но я не хочу отображать панель инструментов по умолчанию из их библиотеки. Ниже приведен код, который я использовал.

override func viewDidLoad() {
        super.viewDidLoad()

        self.chatTextField.inputAccessoryView = [[UIView alloc] init];  //This will remove toolbar which have done button.

        self.chatTextField.keyboardDistanceFromTextField = 8; //This will modify default distance between textField and keyboard. For exact value, please manually check how far your textField from the bottom of the page. Mine was 8pt.    

    }

 enter image description here

4
Gijo Varghese

Вы можете установить IQKeyboardManager ниже свойств.

Я предполагаю, что вы включили IQKeyboardManager в didFinishLaunch делегата приложения, как это

    IQKeyboardManager.sharedManager().enable = true

shouldShowTextFieldPlaceholder to false ==> Если вы хотите скрыть раздел панели инструментов заполнителя

shouldHidePreviousNext to false ==> Если вы хотите скрыть кнопку «Далее» и «Предыдущая» и так далее.

Вы можете включить настройки в didFinishLaunch of AppDelegate вот так

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    IQKeyboardManager.sharedManager().enable = true

    IQKeyboardManager.sharedManager().enableAutoToolbar = false
    IQKeyboardManager.sharedManager().shouldShowTextFieldPlaceholder = false
    IQKeyboardManager.sharedManager().shouldHidePreviousNext = false


    return true
}
23
Wolverine

Вы можете включить или отключить панель инструментов в didFinishLaunchingWithOptions из AppDelegate:

IQKeyboardManager.sharedManager().enable = true

IQKeyboardManager.sharedManager.enableAutoToolbar = false

Для получения дополнительной информации см. Использование свойств и функций

7
Bhavin Ramani

Swift 3 Вы должны использовать shouldResignOnTouchOutside, чтобы уйти в отставку textField, если к нему прикасались за пределами UITextField/UITextView

Добавьте это в свой ViewController, если хотите, чтобы он был указан в конкретном ViewController или переопределите все ваше приложение в файле AppDelegate.

Внутри метода: 

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
  IQKeyboardManager.sharedManager().enable = true
  IQKeyboardManager.sharedManager().enableAutoToolbar = false
  IQKeyboardManager.sharedManager().shouldShowToolbarPlaceholder = false
  IQKeyboardManager.sharedManager().shouldResignOnTouchOutside = true
}
5
MrMins

Включить IQKeyboardManager в Swift 4

Может быть, попробуйте это:

func application(_ application: UIApplication, 
     didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    //Your other code here       

    // -- enable IQKeyboardManager --
    IQKeyboardManager.shared.enable = false

    return true
}
0
Mahesh Chaudhari

Если вы хотите скрыть для определенного контроллера, вы можете сделать так:

  • import IQKeyboardManagerSwift в вашем желаемом View Controller.
  • Добавьте это расширение:

    // MARK: - Helper
    extension <#yourViewController#> {
    
      private func keyboardManagerVisible(_ state: Bool) {
        IQKeyboardManager.shared.enableAutoToolbar = state
      }
    }
    
  • Реализуйте это в жизненном цикле:

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
    
        self.keyboardManagerVisible(false)
    }
    
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
    
        self.keyboardManagerVisible(true)
    }
    
0
Maximelc

Swift 4.2, Xcode 10.1

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    IQKeyboardManager.shared.enable = true
    IQKeyboardManager.shared.enableAutoToolbar = false
    IQKeyboardManager.shared.shouldShowToolbarPlaceholder = false
    IQKeyboardManager.shared.shouldResignOnTouchOutside = true

    return true
}
0
Kedar Sukerkar

Swift 4.0 и выше Для скрытия предыдущий Следующий

IQKeyboardManager.shared.previousNextDisplayMode = .alwaysHide

Swift 4.0 и выше Для панели инструментов

IQKeyboardManager.shared.enableAutoToolbar = false
0
Bhargav Sejpal