ios8 uikeyboard inputaccessoryview

¿Dejando inputAccessoryView visible después de que el teclado se descarta iOS8?



uikeyboard (2)

Está agregando el someView a múltiples superViews, lo que conduce a jerarquías inconsistentes (que le está diciendo).

Cuando el teclado se activa, llama al método inputAccessoryView() para ver si necesita pegar algo en la parte superior del teclado y lo agrega a su propia supervista. Pero ya lo ha agregado a la vista a través de su guión gráfico.

Ahora hay 2 formas en que puedes resolver esto:

  1. Haz un .xib con tu vista y devuelve ese en tu inputAccessoryView() , sin agregarlo a ninguna supervista (el teclado lo hará.

  2. O NSLayoutConstraint completamente en código usando NSLayoutConstraint .

Puede agregar el siguiente código a su ViewController que persistirá en la vista incluso cuando el teclado esté oculto.

override func canBecomeFirstResponder() -> Bool { return true }

Mire este repo de GitHub para un ejemplo.

Quiero hacer un comportamiento como la aplicación de mensajería. He estado buscando Stack Overflow para encontrar soluciones para esto, y de hecho, hay muchas:

Dejando inputAccessoryView visible después de que el teclado se descarta

Este fue el que encontré. Pero parece que las cosas son un poco diferentes en iOS8 . Si hago lo mismo en la nueva iOS8 sdk , obtengo un error:

''UIViewControllerHierarchyInconsistency'', reason: ''child view controller:<UICompatibilityInputViewController: 0x7fdcb3441b10> should have parent view controller:<ViewController: 0x7fdcb3b1e9f0> but requested parent is:<UIInputWindowController: 0x7fdcb684c000>''

Para probar esto más hice un proyecto de muestra, solo un controlador con vista en la parte inferior:

Outlet está conectado a la vista inferior, que solo tiene UITextField en él. ¿Me estoy perdiendo algo y cómo obtengo el comportamiento deseado?