2013-08-13 7 views
3

UITextfield의 inputview를 비활성화하는 방법을 궁금합니다. ShouldBeginEditing에서 textField.inputView = nil; 또는 [textField setInputView:nil]을 설정하면 아무 작업도 수행되지 않고 userInteraction 속성을 사용하면 필드와 상호 작용할 수있는 기능이 제거됩니다. 이상 적으로는 ShouldBeginEditing과 ShouldEndEditing을 사용하여 텍스트 필드 메서드간에 상호 작용하고 전환 할 수있는 동안 커서와 키보드를 모두 제거하고 싶습니다. 이것을 달성 할 방법이 있습니까?UITextfield 키보드 사용 안 함

+1

당신이 "텍스트 필드 방법을 전환을"무엇을 의미합니까 :

caretRectForPosition의 UITextField를 서브 클래스 화해, 오버라이드 (override), 캐럿 제거하려면? 이 UITextField로 무엇을하고 싶습니까? –

+0

키보라드가 나타나지 않기를 원하십니까? 그게 맞습니까? –

+0

몇 가지 UITextfield가 있습니다. 현재 textFieldShouldBeginEditing 및 textFieldShouldEndEditing을 사용하여 텍스트 필드 강조 표시 또는 왼쪽/오른쪽보기 이미지와 같은 설정을 위해 현재 어떤 필드가 활성 상태인지 확인합니다. – DOLOisSOLO

답변

2

당신은이 작업을 수행해야합니다 nil로 설정

myTextField.inputView = UIView.new; //Empty UIView 

은 기본 키보드를 사용하는 것을 의미합니다.

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

키보드를 숨기지 만 입력보기를 새보기로 설정하면 여전히 텍스트 필드에 커서가 표시됩니다. – DOLOisSOLO

+0

UITextField를 서브 클래스하지 않고 커서를 제거 할 수 없습니다. 나는 그것을하는 방법으로 내 대답을 편집했습니다. – mattsven

0

이 시도 :

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    return NO; // Hide both keyboard and blinking cursor. 
} 

또는

-(void)textFieldDidBeginEditing:(UITextField *)textField{ 
    [textField resignFirstResponder]; // hides keyboard 
} 
+0

이 경우 실제로 어느 솔루션도 작동하지 않습니다. 내 견해에있는 각 텍스트 필드에 대해 설정할 속성을 결정하기 위해 여전히 텍스트 필드가 활성화되어 있어야합니다. – DOLOisSOLO