Вопрос

у меня проблема.Я реализовал UITextField, содержащий номер телефона, затем реализовал следующий метод для вызова номера телефона:

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

}

Но как я могу сказать текстовому полю, когда я касаюсь его, чтобы запустить метод и набрать номер?

Это было полезно?

Решение

Я согласен со St3fan, что обычное TextField никогда не должно вызывать действие при нажатии.На данный момент я предполагаю, что у вас есть специальный UITextField, который можно сделать нередактируемым, и тогда он будет выглядеть как UILabel, отформатированный так, чтобы выглядеть как гиперссылка.Такой пользовательский интерфейс мог бы быть правильным.Нажатие на текстовое поле, которое выглядит как редактируемое, но на самом деле вызывает телефонный звонок, конечно, было бы неправильным.

Вы могли бы реализовать UITextFieldDelegate протокол и следить за textFieldShouldBeginEditing:.Поскольку это текстовое поле недоступно для редактирования, очевидно, вам следует вернуть NO.

Вы можете добавить кнопку «Позвонить» внутри текстового поля, используя ее наложение (leftView или rightView;прочитайте документацию по правильному UE для них).

Вы могли бы создать подкласс UITextField переопределить touchesBegan:withEvent, touchesEnded:withEvent: и touchesCancelled:withEvent: справиться с прикосновением самостоятельно.Помнить:вы должны получить touchesBegan и touchesEnded без touchesCancelled между ними, чтобы считать это прикосновением.Никогда не запускайте действие, основанное только на touchesBegan.

Другие советы

Нажатие на текстовое поле никогда не должно приводить к каким-либо действиям.На мой взгляд, это плохой дизайн пользовательского интерфейса.Почему бы вам не добавить кнопку рядом с полем, в котором выполняется приведенный выше код?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top