Uitextfield에서 PHONECALL 로의 방법
-
20-09-2019 - |
문제
문제가 있습니다. 전화기가 포함 된 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에 동의합니다. 나는 당신이 불가능하게 만들 수있는 특별한 uitextfield를 가지고 있다고 가정 할 것입니다. UILabel
, 하이퍼 링크처럼 보이도록 형식화되었습니다. 그러한 UI가 정확할 수 있습니다. 편집 가능한 것처럼 보이지만 실제로 전화 통화를하는 텍스트 필드를 탭하면 물론 부정확합니다.
당신은 그것을 구현할 수 있습니다 UITextFieldDelegate
프로토콜을 지켜보십시오 textFieldShouldBeginEditing:
. 이 텍스트 필드는 편집 할 수 없으므로 분명히 반환해야합니다.
오버레이 뷰를 사용하여 텍스트 필드 내부에 "호출"버튼을 추가 할 수 있습니다 (leftView
또는 rightView
; 올바른 UE에있는 문서를 읽으십시오).
당신은 서브 클래스를 할 수 있습니다 UITextField
무시합니다 touchesBegan:withEvent
, touchesEnded:withEvent:
그리고 touchesCancelled:withEvent:
손길을 직접 처리합니다. 기억하십시오 : 당신은 a를 받아야합니다 touchesBegan
그리고 touchesEnded
a touchesCancelled
그것들 사이에서 그것을 만지기 위해. 만 행동을 해고하지 마십시오 touchesBegan
.
다른 팁
텍스트 필드를 탭하면 어떤 행동이 발생하지 않아야합니다. 제 생각에 그것은 나쁜 사용자 인터페이스 디자인입니다. 위의 코드를 실행하는 필드 옆에 버튼을 추가하지 않겠습니까?