문제

문제가 있습니다. 전화기가 포함 된 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.

다른 팁

텍스트 필드를 탭하면 어떤 행동이 발생하지 않아야합니다. 제 생각에 그것은 나쁜 사용자 인터페이스 디자인입니다. 위의 코드를 실행하는 필드 옆에 버튼을 추가하지 않겠습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top