2008-11-09 8 views
1

통화 값을 표시하기위한 사용자 지정 UILabel 하위 클래스가 있습니다. 나는 사용자가 숫자를 입력하고 뷰를 그 숫자를 통화 값 (현금 값 레지스터)으로 포맷 할 수있게하려고한다. 이렇게하면 UITextField가 이러한 종류의 입력에 부적절한 선택이됩니다.키보드 입력이있는 사용자 정의 UIView?

나는 이미 hitTest를 재정의 했으므로 UILabel이 반환 될 것입니다. 이것은 분명히 버그입니다. 또한 canBecomeFirstResponder와 becomeFirstResponder를 모두 재정 의하여 YES를 반환했습니다. 그러나 이러한 방법 중 어느 것도 호출되고 있지 않습니다.

사용자가 번호를 입력하고 백 스페이스 키만 사용하도록하고 싶습니다. UITextInputTraits를 구현했지만 키보드가 나타나지 않습니다. 그래서,이 일을 할 수 있습니까? 그렇다면 무엇을 놓치고 있습니까?

+0

대신에'UIControl'을 서브 클래스 화하고'UILabel' 인스턴스를 래핑하려고 했습니까? – postmechanical

답변

1

나는 이런 식으로했습니다. UITextField를 서브 클래스 화해, 텍스트의 색을 클리어 해, 그 위에 label를 붙여 포맷 된 버전을 표시합니다.

편집 - 사실 엄밀히 말하면 서브 클래스를 만들 필요가 없습니다. 델리게이트 메소드 (-textField : shouldChangeCharactersInRange : replacementString :)를 구현하고, UITextField에 라벨을 추가하고, 필요한 경우 라벨의 텍스트를 포맷하십시오.

+0

한 가지 질문 : 삽입 지점을 숨길 수 있습니까? – Alex

1

좋아, 나 자신의 질문에 대답했습니다 : UITextView 위에 배치 된 UILabel 또한 삽입 포인터를 숨길 수 있지만 여전히 첫 번째 응답자가 될 수 및 입력 가져옵니다.

감사합니다.

관련 문제