2012-09-14 3 views
4

MFMessageComposeViewController에서 제공하는 표준 SMS 기능을 사용하는 응용 프로그램이 있습니다. 수신자 배열을 SMS 대화 상자의 TO : 필드에 표시합니다. 사용자는 새 수신자를 제거하거나 추가 할 수 있습니다. 이것은 괜찮지 만 사용자가 수신자 필드를 변경할 때 다른 작업을해야하기 때문에 사용자가 TO : 필드를 편집하는시기를 알아야합니다. 취소 단추를 클릭하거나 보내기 단추를 클릭 한 후받는 사람 필드가 편집되었는지 여부를 알 수있는 방법이 있습니까?MFMessageComposeViewController To : 필드에 대한 피드백

나는 내 코드에서 방법 콜백이 있습니다

-(void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result 

이 방법은 controller.recipients을 가지고 있지만이 배열은 메시지 컨트롤러 견해를 호출하기 전에받는 사람이 포함되어 있습니다.

+0

나는 불가능하다고 생각합니다 ... – k06a

답변

0

iOS 7에서는 불가능합니다. 위임 방법에서 제공하는 유일한 정보는 사용자가 메시지 취소, 메시지 전송 또는 전송 실패 중 어떤 것을 선택했는지입니다. the documentation 가입일

: 사용자는 버튼 중 하나 메시지 조성물 인터페이스 해제 탭들 때

이 메소드가 호출된다. 이 메서드를 구현 한 은보기 컨트롤러를 닫고 메시지 전송을 처리하는 데 추가 작업을 수행해야합니다. 결과 매개 변수 을 사용하면 사용자가 메시지 취소 또는 보내기를 선택했는지 또는 메시지 전송 실패 여부를 알 수 있습니다.

0

Enrico의 답변에 추가하려면 공개 API 관점에서는 불가능하며, iOS6 이후 메일 및 메시지 작성보기 컨트롤러는 자신의 것과 다른 프로세스로 렌더링되기 때문에 속임수로도 가능하지 않습니다. , 그리고 뷰 계층 구조는 애플리케이션에 완전히 숨겨져 있습니다. 실제로 메시지 작성보기 컨트롤러보기의보기 계층 구조를 검사 할 경우 실제로 화면에있는 항목이 계층 구조에 없다는 것을 알 수 있습니다. 원격 뷰의 로딩 중 메시지 작성 뷰 컨트롤러에 주어진 설정은 원격 뷰 컨트롤러로 전달됩니다. 그러나이 단방향 작업이며 원격 뷰를로드 한 후 속성을 업데이트하거나 읽지 않습니다.

사용자의 개인 정보를 보호하기위한 것입니다. 이것은 iOS의 근본적인 디자인입니다. 이를 수락하고 이에 따라 신청서를 디자인해야합니다.