2015-09-25 19 views
5

Ho sottoclassi UIWebView per aggiungere funzionalità UIMenuController personalizzate e funzionava piuttosto bene fino a iOS 9. Non sono sicuro di cosa è cambiato, ma ora mi trovo in una situazione in cui Tocco un link, che dovrebbe presentare il menu, il menu si visualizza brevemente, ma viene ignorato (senza ulteriori intercettazioni da me).UIMenuController viene eliminato immediatamente dopo essere stato presentato

Ho difficoltà a capire da dove proviene il licenziamento. Sto osservando la notifica UIMenuControllerDidHideMenuNotification, che viene effettivamente chiamata subito dopo la scomparsa del menu, ma sto facendo fatica a trovare la causa del licenziamento.

Riconosco che ci sono molti problemi diversi che potrebbero essere in agguato, ma mi chiedo se qualcuno abbia mai sperimentato qualcosa di simile prima? C'è un modo per rintracciare in qualche modo la causa del licenziamento?

enter image description here

+0

Forse se si potesse inserire tutto il codice relativo visualizzare/nascondere il controller menù potremmo aiutare di più – Istvan

+0

Penso che sia necessario mostrare del codice? –

risposta

7

Ho avuto lo stesso problema con iOS9, penso che succeda come risultato di più processi. Questa non è la soluzione ideale ma ... Dopo essere diventato FirstResponder ho aggiunto un DELAY prima di setMenuVisible: YES.

[self performSelector: @selector (showMenuController :) withObject: point afterDelay: 0.4];

+1

Ha funzionato alla grande! Assegnerò il premio non appena me lo permetterà. Grazie – Lizza

0

Si prega di provare con l'aggiunta seguente metodo nel controller della vista.

- (BOOL) canBecomeFirstResponder { 
    return YES; 
} 
+0

Avrei dovuto chiarire, ce l'ho dentro. – Lizza

+0

Capisco. Stai anche chiamando '-becomeFirstResponder' sulla vista o sul controller di visualizzazione? – Abhinav

+0

Sì, sto chiamando getFirstResponder prima che il menuController debba essere visualizzato. Questo è originario dalla vista, non dal VC. Grazie per il tuo aiuto, btw. – Lizza

0

Ero in esecuzione in un problema simile cercando di visualizzare un UIMenuController all'interno di una visualizzazione personalizzata. E la correzione del ritardo di cui sopra non ha funzionato.

per risolvere il problema ho dovuto aggiungere sostituzioni per canBecomeFirstResponder quindi è tornato vero, sia per la mia vista personalizzata ed il viewController che era contenuta in.

Problemi correlati