Я согласен со St3fan, что обычное TextField никогда не должно вызывать действие при нажатии. На данный момент я предполагаю, что у вас есть специальный UITextField, который можно сделать недоступным для редактирования и затем выглядит как UILabel
, отформатированный так, чтобы он выглядел как гиперссылка. Такой интерфейс может быть правильным. Нажатие на текстовое поле, которое выглядит как редактируемое, но на самом деле делает телефонный звонок, было бы, конечно, неправильно.
Вы можете реализовать протокол UITextFieldDelegate
и наблюдать за textFieldShouldBeginEditing:
. Поскольку это текстовое поле недоступно для редактирования, очевидно, вы должны вернуть NO.
Вы можете добавить кнопку «вызов» внутри текстового поля, используя его наложения (leftView
или rightView
; для этого прочитайте документы в правильном UE).
Вы можете создать подкласс UITextField
, чтобы переопределить touchesBegan:withEvent
, touchesEnded:withEvent:
и touchesCancelled:withEvent:
, чтобы обрабатывать касание самостоятельно. Помните: вы должны получить touchesBegan
и touchesEnded
без touchesCancelled
между ними, чтобы считать это касанием. Никогда не запускайте действие, основанное только на touchesBegan
.