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