Domanda

ho un problema. Ho implementato un UITextField che contiene un phonenumber, quindi ho implementato il seguente metodo per chiamare il numero di telefono:

- (void)rufeAn{
NSString *prefix = (@"tel://");
UIApplication *app = [UIApplication sharedApplication];
NSString *dialThis = [NSString stringWithFormat:@"%@%@", prefix, map.kordinate.telefon];
NSURL *url = [NSURL URLWithString:dialThis];
[app openURL:url];

}

Ma come posso dire al textField quando tocco su di esso, per iniziare il metodo e comporre?

È stato utile?

Soluzione

Sono d'accordo con St3fan che un TextField normale non dovrebbe mai causare un'azione toccando. I assumerà per il momento che si dispone di un UITextField speciale che può essere reso non modificabile e quindi si presenta come un UILabel, formattato per assomigliare ad un collegamento ipertestuale. Tale interfaccia può essere corretta. Toccando un campo di testo che sembra è modificabile, ma in realtà fa una telefonata sarebbe ovviamente essere corretto.

Si potrebbe implementare il protocollo UITextFieldDelegate e guardare per textFieldShouldBeginEditing:. Dal momento che questo campo di testo non è modificabile, ovviamente, si dovrebbe tornare NO.

Si potrebbe aggiungere un pulsante "Chiama" all'interno del campo di testo utilizzando le viste sovrapposte (leftView o rightView; leggere la documentazione sul corretto UE per questi)

.

Si potrebbe sottoclasse UITextField per ignorare touchesBegan:withEvent, touchesEnded:withEvent: e touchesCancelled:withEvent: per gestire il tocco voi stessi. Ricordate: è necessario ricevere un touchesBegan e touchesEnded senza un touchesCancelled tra di loro al fine di prendere in considerazione un tocco. Mai sparare un'azione basata solo su touchesBegan.

Altri suggerimenti

Tapping un campo di testo non dovrebbe mai comportare una certa azione. A mio parere questo è il design dell'interfaccia utente male. Perché non aggiunge un pulsante accanto al campo che fa funzionare il codice di cui sopra?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top