2012-09-25 1 views
3

UITextInput 프로토콜을 구현하는 사용자 지정 텍스트 편집기가있는 응용 프로그램이 있습니다. 아이폰 OS 6, 애플은 프로토콜에 하나의 새로운 요구 방법 추가 :- [UITextInput selectionRectsForRange :]는 언제 호출됩니까?

- (NSArray *)selectionRectsForRange:(UITextRange *)range 

내가 이것을 구현했습니다,하지만 나는 그것을 실행할 수있는 방법을 찾을 수 없습니다. 적어도 내 응용 프로그램이 작동하는 방식에서는 텍스트 시스템에 의해 호출되지 않는 것 같습니다. 그게 뭔지 아는 사람 있습니까?

+0

문서에서 반환 값은'선택을 포함하는 UITextSelectionRect 객체의 배열입니다 .''UITextSelectionRect'에 대한 추가 정보 읽기 : 사용자 정의 텍스트 입력보기를 구현하는 경우 사용자 정의 클래스를 서브 클래스로 사용할 수 있습니다 선택 관련 정보를 반환합니다. 하위 클래스를 만들 때 모든 속성을 재정의하고 다시 구현해야합니다. 사용자 정의 구현에서는 super를 호출하지 마십시오. –

+0

위의 내용과 이미 읽은 내용이 나와 있지만 텍스트 선택 범위에 대한 정보가 나와있는 것처럼 보였고 원하는 내용에 대한 사용자 지정 정보가 반환됩니다. –

+0

예,하지만 제 질문은 그것이 언제 부름입니까. 프로토콜의 모든 메소드는 입력 및 자동 고침과 같은 작업을 위해 텍스트 시스템에 의해 호출됩니다. 나는이 메소드를 언제 호출 할 것인지를 찾고있다. –

답변

4

이 메서드는 UITextView의 하위 클래스에서만 사용됩니다. 이것은 시스템 선택과 부분 확대 (loupe)를 제공하는 유일한 방법입니다. 이것이 내가 WWDC에서 말한 것입니다.

나는 내 자신의 DTRichTextEditor에 대해서도 작업하고 있는데, 그럼에도 불구하고 언젠가 우리가 UITextView에서 파생되지 않은 우리 자신의 UIView에 대해서도 선택/루핑을 얻습니다.

+0

VoiceOver가 사용 가능할 때 실제로 메서드가 사용자 정의 뷰를 호출합니다. 그 결과는 사용자가 뷰를 가로 질러 드래그하는 동안 말한 텍스트 라인을 강조 표시하는 데 사용됩니다 (iOS 8에서 테스트 됨, iOS 6 및 7에서 동작이 어떻게되는지 확실하지 않음). – omz