Frage

ich habe ein Problem. Ich habe eine UITextField implementiert, die eine Telefonnummer enthält, dann habe ich die folgende Methode implementiert, um die Telefonnummer anzurufen:

- (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];

}

Aber wie kann ich auf das Textfeld sagen, wenn ich auf ihn berühren, um die Methode zu starten, und wählen Sie?

War es hilfreich?

Lösung

Ich bin mit St3fan, dass ein normaler TextField- sollte nie eine Aktion bewirken durch Antippen. Ich werde für den Moment davon ausgehen, dass Sie eine spezielle UITextField haben, die nicht bearbeitet werden gemacht werden kann, und sieht dann wie ein UILabel, formatiert wie ein Hyperlink zu suchen. Eine solche UI könnte richtig sein. ein Textfeld tippen, das aussieht wie es editierbar ist, aber tatsächlich einen Anruf macht natürlich wäre falsch.

Sie könnten das UITextFieldDelegate Protokoll und achten Sie auf textFieldShouldBeginEditing: implementieren. Da dieses Textfeld nicht bearbeitet werden kann, offensichtlich sollten Sie NO zurück.

Sie könnten einen „Anruf“ -Taste innerhalb des Textfeldes mit seinen Überlagerungsansichten hinzufügen (leftView oder rightView, lesen Sie die Dokumentation auf der richtige UE für diese).

Sie könnten Unterklasse UITextField außer Kraft zu setzen touchesBegan:withEvent, touchesEnded:withEvent: und touchesCancelled:withEvent: die Note selbst zu behandeln. Denken Sie daran: Sie touchesBegan und touchesEnded ohne touchesCancelled zwischen ihnen, um sie eine Note betrachten erhalten muss. Nie eine Aktion ausgelöst basiert nur auf touchesBegan.

Andere Tipps

ein Textfeld tippen, sollte nie in einer Aktion führen. Meiner Meinung nach, das ist schlecht User Interface Design. Warum Sie nicht über eine Schaltfläche neben dem Feld hinzufügen, die den obigen Code ausgeführt wird?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top