2011-01-25 4 views
1

UITextView 용 가상 키보드를 구축 중입니다. 모든 것이 잘 작동하고, 키보드를 디스플레이하고 키보드를 제거 할 수 있으며 키 스트로크를 표시 할 수 있습니다. "stringByReplacingCharactersInRange : withString"메서드를 사용하여 새 키 입력을 텍스트보기에 배치합니다. 이것은 작동하지만 매번 문자열을 대체하기 때문에 진입 점은 문자열의 끝으로갑니다. 이것은 모두 의미가 있지만 매우 유용하지는 않습니다. 내 코드에서 수표를 사용하여이 문제를 해결할 수 있지만 더 나은 뭔가있을 수 있습니다 ...iOS의 사용자 정의 키보드에서 키 값을 UITextView로 푸는 방법

내 질문은이; 수동으로 UITextView의 텍스트 속성의 문자열을 수정하지 않고 직접 새 키를 UITextView로 푸시하는 방법이 있습니까? 매뉴얼은 내가 목표/행동을 직접 관리해야한다고 말했지만, 전화 할 행동을 놓친 것인지 궁금해하고있었습니다. Apple Default 키보드는 타이핑을 원활하게하기 위해해야 ​​할 명백한 수표가 없으면 키 스트로크를 객체에 펀치하는 매끄러운 방법이 있어야합니다.

도움이 될 것입니다. 감사합니다. Rob

답변

1

글쎄, 응답을 얻지 못했습니다. 그래서 나는 그것을 할 수있는 방법을 알아내어 합리적이고 간단하게 만들었습니다. 선택한 범위를 추적하는 문제입니다. 그래서 내가 Backspace를 원할 때 나는이 기술을 사용한다.

NSRange currentRange = self.myTextView.selectedRange; 
if (currentRange.length == 0) { 
    currentRange.location--; 
    currentRange.length++; 
} 
self.myTextView.text = [self.myTextView.text stringByReplacingCharactersInRange:currentRange withString:[NSString string]]; 
currentRange.length = 0; 
self.myTextView.selectedRange = currentRange; 

문자를 입력해야하는 경우 작동합니다.

NSRange currentRange = self.myTextView.selectedRange; 
self.myTextView.text = [self.myTextView.text stringByReplacingCharactersInRange:currentRange withString:someCharacter]; 
currentRange.location++; 
currentRange.length = 0; 
self.myTextView.selectedRange = currentRange; 

더 좋은 방법이 있다면 누구나 들어보고 싶습니다.

감사합니다.
Rob

관련 문제