2010-05-12 3 views
4

UITextView를 만들고 싶습니다.이 UITextView를 클릭하면 해당 위치에서 타이핑을 시작할 수 있습니다. 컨트롤의 기본 동작은 마지막 문자가 끝난 곳에서 타이핑이 시작된다는 것입니다. 그래서, 텍스트가없는 UITextView를 컨트롤 중간에 탭하면 입력을 시작하고 싶습니다. 왼쪽 상단은 아닙니다.iPhone SDK : 탭하면 텍스트를 삽입하는 UITextView를 만드는 방법은 무엇입니까?

이 동작을 구현하는 가장 좋은 방법은 무엇입니까? 보기의 기본 텍스트 값을 3000 공백 문자 또는 이와 유사한 것으로 만드는 것을 고려해 보았습니다. 그러나 이것은 우아한 해결책이 아닌 것처럼 보입니다. 제안?

+0

코드를 게시 할 수 있습니까? 나는 벤 콜린스의 대답을 알지 못한다. 그러니 도와주세요. 그리고 다른 사람들에게도 도움이되기를 바랍니다. –

답변

4

UITextView에서 파생되어 탭을 처리하는 사용자 정의보기를 만드는 것이 좋습니다. 당신은 아마 다음 방법를 오버라이드 (override) 할 수 있습니다 :

  • touchesCancelled:withEvent
    • touchesBegan:withEvent
    • touchesMoved:withEvent
    • touchesEnded:withEvent
    • userInteractionEnabled 속성이 YES의 기본 값이 있는지 확인합니다. hitTest:withEventpointInside:withEvent을 재정 의하여 사용자가보기에서 탭한 위치를 파악합니다.

      자세한 내용은 iOS 용 프로그래밍 가이드의 Responding to Events 섹션을 읽고 자세한 내용은 Event Handling Guide for iOS을 참조하십시오.

      어쨌든 사용자가 터치 한 위치를 파악한 후에는 텍스트를 수정하거나 적절하게 캐럿의 위치를 ​​변경할 수 있습니다.

    +0

    나는 이것을 시도하고 그것이 어떻게되는지 보게 될 것이다. 나는 UITextView에서 터치 이벤트를 처리하기 위해 여러 번 시도했지만 일반적으로 터치 이벤트를 먹는 경향이 있기 때문에 잘 진행되지 않습니다. 나는 히트 테스트를 사용해 본 적이 한번도 없다. – memmons

    +0

    가능하면 코드로 자세히 설명 할 수 있습니까? 많은 파슨이 그것을 이해할 수 없기 때문입니다. –

    관련 문제