2009-03-21 8 views
2

UITextView을 사용하여 정적 콘텐츠 (중국어로는 문자가 모두 고정 폭임)를 보유하고 있습니다. 사용자가 텍스트의 한 문자를 클릭하고 해당 문자에 대한 사전 정보를 가져 오게하고 싶습니다. 복사 및 붙여 넣기가 부족하다는 점을 모두 알고 있지만 iPhone 3.0 펌웨어를 기다리지 않고이 작업을 수행 할 수 있기를 바랍니다.(iPhone) selectedRange 편집 할 수없는 UITextView (또는 다른 클릭 처리 방법)

처음에는 UITextViewselectedIndex 속성을 사용하려고 생각했습니다. 이 말이

NSRange touchPoint = self.selectedRange; 
NSLog(@"Selection: %d", touchPoint.location); 

, 나는 어떤이의 비 편집 UITextView에서와 같이 생각하지 다음 UITextView 편집 할 수없는 불행하게도,의 UITextView 년대에 다음 코드는 항상 전체 텍스트 블록의 길이를 반환 방법은 삽입 지점을 선택하는 데 도움이되지 않습니다. :)

또 다른 접근법은 중국어 텍스트가 고정 폭이며 클릭이 착륙하고 그 텍스트가 그 위치에 있어야한다는 사실을 사용하여 계산하는 것입니다. 그러나 구두점을 사용하면 선을 일찍 감싸고 선행 문자를 한 줄 아래로 가져옵니다.

누락 된 터치 이벤트에 어떤 텍스트가 있는지 알 수있는 또 다른 방법이 있습니까?

답변

2

를 호출 selectedRange을 요청하기 전에 다음과 같은 :

[[textView webView] updateSelectionWithPoint:point]; 

참고 : -webView-updateSelectionWithPoint: 모두 개인의 API입니다. 첫 번째 응답자가되고 가짜 터치 이벤트를 보내면 편집 가능한 상태로 전환하여 동등한 동작을 수행 할 수도 있지만 더 많은 작업이 필요합니다.

+0

방금 ​​시도했습니다. UITextView를 편집 할 수 있으면 멋지게 작동합니다 (돋보기가 튀어 나올 때까지 터치를 유지할 필요는 없습니다).하지만 UITextView를 편집 할 수없는 경우 텍스트의 길이를 반환합니다. 나중에 더 이상 가짜 이벤트 버전을 사용해보아야합니다. –

+0

아마도 편집 전후의 설정이 효과가있을 것입니다. 물론 일반 텍스트 만 표시하는 경우 더 나은 방법은 텍스트를 수동으로 그리는 사용자 지정보기를 사용하는 것입니다. – rpetrich