2014-09-16 4 views
0

몇 가지 개념을 오해 한 것 같아서 안내가 필요합니다. 내가 얻고 자하는 것은 UITextField의 inputView로 UIPickerView를 사용하는 것입니다. self.textField.inputView = self.pickerView으로 쉽게 완료 할 수 있습니다. 이 문제는 여전히 깜박이는 커서가 있고 BT 키보드가있는 장치가 여전히 텍스트 필드에 텍스트를 입력 할 수 있다는 것입니다. 그래서 첫 번째 응답자 역할을 할 수있는 사용자 지정 UIView에 대해 읽었습니다. UIView를 서브 클래 싱 한 후 canBecomeFirstResponder, canResignFirstResponder, becomeFirstResponderresignFirstResponder을 추가했습니다. 모두 반환됩니다. 문제는 내가보기를 탭하면 아무 일도 일어나지 않는다는 것입니다. 사용자 정의 inputView을 정의하지 않으면 아무런 문제가없는 것처럼 작동합니다.UIPickerView를 사용자 정의 UIView의 inputView로 사용

는 모든 지침은 감사합니다. 감사합니다. Z.

답변

0

사용자 지정 TextField를 만들고 다음 방법을 재정의해야합니다.

- (CGRect)caretRectForPosition:(UITextPosition *)position 
{ 
    return CGRectZero; 
} 

이제이 맞춤 텍스트 필드를 사용하여 필수 Textfield를 만들고 입력보기를 pickerview로 설정하십시오. 위의 방법은 깜박이는 커서를 제거합니다. 텍스트는 BT 키보드에서 입력하지 않으려면 텍스트 필드의 위임 방법에서해야합니다.

// 텍스트를 복사하여 블루투스 키보드로 붙여 넣거나 편집하지 못하게합니다.

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
     return NO; 
} 
0

1.create로 (의 UIView) UIResponder 클래스

2.redeclare inputview의 서브

- (BOOL)canBecomeFirstResponder { 
return YES; 
} 
YES로

@property (nonatomic, strong, readwrite) UIView *inputView; 

3.set canBecomeFirstResponder의 읽기 쓰기

4. datepicker와 같은 4.set 입력보기

당신이

[self becomeFirstResponder]; 

5.you 키보드

같은 날짜 선택기 쇼를 볼 수 있습니다 원하는 firstResponder에
self.inputView = self.datePicker; 

5.set의 UIResponder

관련 문제