2011-01-04 2 views
2

텍스트 입력을 위해 맞춤 키보드를 사용할 앱을 개발 중입니다. 키보드에는 "앞으로"와 "뒤로"키가 있어야합니다.iOS - UITextField에서 커서 위치를 설정할 수 없음을 처리합니다.

SO에서 일부 사냥은 UITextField에서 커서 위치를 프로그래밍 방식으로 설정하는 것이 불가능 함을 나타냅니다.

대신 UITextView를 사용하여 보았습니다. 이렇게하면 커서 위치를 설정할 수 있습니다. 하지만 스크롤 동작은 매우 짜증나게됩니다.

누군가가 좋은 해결책을 알고 있는지 궁금합니다. 기본적으로, 나는 텍스트와 커서가있는 것을 원한다. 그리고 커서 위치를 프로그래밍 방식으로 설정할 수있다.

EDIT : 흥미롭게도 시뮬레이터에 UITextField가 있고 Mac 키보드에서 앞으로 또는 뒤로 화살표 키를 누르면 커서가 앞으로 또는 뒤로 이동합니다. 그러나 장치에서이 동작을 모방 할 방법이 전혀 없습니다. . . 또는 마우스를 클릭하여 시뮬레이터 화면을 클릭하십시오.

답변

0

또한 커서 위치를 설정할 수있는 목적으로 UITextView를 사용합니다. 당신은 (자신이있는 UIScrollView의 전문화이다) UITextView를 서브 클래스 경우

, 당신은 "scrollingEnabled"를 무시하고 반환 할 수 있습니다 NO :

- (BOOL) scrollingEnabled 
{ 
    return NO; 
} 

또한 정확히 무엇을 얻을 수있는 contentInset 및 contentOffset 속성 연주했다 나는 원했다.

+0

초기화시 self.scrollEnabled = NO로 설정하고 항상 NO를 반환하도록 isScrollEnabled를 재정의하더라도 선택시 여전히 위쪽으로 스크롤 할 수 있습니다. ("may"은보기의 크기에 상대적인 글꼴 크기에 따라 다릅니다.) –

+0

예,보기 크기를 조정해야합니다. – TomSwift

+0

죄송합니다. 당신 말이 맞아요. 내 프로젝트에 죽은 코드가있다. scrollEnabled를 NO로 설정하고 스크롤을 완전히 피하기 위해 필드에 대한보기 크기와 트랙 입력을 조정해야합니다. – TomSwift

4

허용 된 답변은 당시로서는 정확했지만 현재는 구식입니다. iOS 5에서는 UITextField가 UITextInput 프로토콜을 준수합니다. 커서 위치는 selectedTextRange 속성을 통해 설정할 수 있습니다.

관련 문제