2012-08-08 1 views
2

으로 UITextField에서 선택된 텍스트의 범위를 가져옵니다. UITextInput 프로토콜의 selectedTextRange 및 beginOfDocument 속성을 사용하여이 작업을 수행했지만, 아래 게시물에서 방금 배웠던 것처럼 UITextField는 UITextInput 프로토콜을 iOS 5에서 사용할 수 있으므로 iOS 4.3에서 응용 프로그램이 충돌합니다. iOS 4.3에서 다른 방법이 필요합니다.NSRange가 iOS 4

UITextInput protocol usage for UITextField and UITextView to manage selection results in crash.

는 여기에 내가 (자기 제의 UITextField의 서브 클래스입니다) 지금 뭘하는지입니다 :

UITextRange *selectedTextRange = self.selectedTextRange; 
NSUInteger location = [self offsetFromPosition:self.beginningOfDocument 
             toPosition:selectedTextRange.start]; 
NSUInteger length = [self offsetFromPosition:selectedTextRange.start 
             toPosition:selectedTextRange.end]; 
NSRange selectedRange = NSMakeRange(location, length); 

답변

1

는 사용자가의 UITextField에 텍스트를 선택했다고 가정 해 봅시다. iOS 4가 "선택 및 복사"라는 필드 아래에 태그 줄을 추가하면 클립 보드에서 텍스트를 가져올 수 있습니다 (클립 보드가 변경 될 때 알림을받을 수 있는지 여부는 확실하지 않음).

또는 삭제 키와 같은 키를 탭할 수도 있습니다. 텍스트 위임 메서드 인 "shouldChangeCharactersInRange :"에서는 범위를 가져온 다음 변경할 수 없으므로 NO를 반환합니다.

+0

답변 해 주셔서 감사합니다. 우리는 실제로 iOS 4.3의 기능을 종료했습니다. 그것은 가장 깨끗한 해결책으로 밝혀졌습니다. –