2015-07-22 9 views
12

Sto cercando di copiare il contenuto in una UILabel ma senza nascondere la tastiera, il problema è che quando mostro il menu di copia nell'etichetta l'etichetta diventa il primo risponditore e la tastiera dimettersi, ma voglio farlo senza nascondere la tastiera, c'è un modo per farlo?[Objective-C] Modifica UILabel senza nascondere la tastiera

+0

Ho avuto lo stesso problema ma non ho trovato una soluzione migliore di un'implementazione personalizzata del menu di copia (con uilongpressgesturerecognizer e UIPasteboard) – Lennet

+0

ok, vuoi dire con un uimenucontroller personalizzato? o semplicemente usando il riconoscitore di gesti e poi il cartoncino? –

+0

ho usato un semplice uiview (simile a un uimenucontroller) con un pulsante di copia – Lennet

risposta

-3

Ogni componente di UIView ha un metodo chiamato: canBecomeFirstResponder. Egli è di sola lettura, ma è possibile creare una sottoclasse dell'oggetto UI e sovrascrivere il getter:

- (BOOL)canBecomeFirstResponder { 
    return false; 
} 

non ho fatto il test, ma se il "diventare first responder" è il problema, che dovrebbe risolverlo.

+0

Ok, in questo modo la visualizzazione testuale non diventa prima risponditore e la tastiera non si nasconde, ma il problema qui è che ho bisogno di mostrare la selezione all | copia il menu, e con questo non appare –

4

Non è possibile con UILabel.

È necessario utilizzare UITextField per quello. Basta disabilitare la modifica.

3

per quanto ne so, non è possibile farlo. Ma penso che tu possa avere un lavoro da fare per quello. Invece di non nascondere la tastiera, perché non tenere traccia del campo di testo attivo corrente e quindi attivarlo dopo che l'utente ha premuto copy. È possibile utilizzare UIPasteboardChangedNotification per sapere quando l'utente ha premuto copy. Ad esempio:

0

Penso, non è possibile, ci può essere solo un primo risponditore in qualsiasi momento. Se la tastiera viene mostrata a causa di un altro elemento dell'interfaccia utente, quando cerchi di copiare il contenuto da UILabel, il sistema operativo deve trasferire il primo risponditore da un altro elemento a UILabel, poiché non c'è bisogno della tastiera per UILabel, la tastiera si nasconderà automaticamente . Quindi, devi apportare modifiche ai tuoi elementi per risolvere questo problema o utilizzare elementi dell'interfaccia utente di terze parti che possono risolvere il tuo problema.

Problemi correlati