2011-01-15 3 views
14

iPhone 앱에서 작업 중이며 iPhone 앱에서 사용자가 UITextView를 입력하고 있습니다. 정상적인 리턴 키 대신 키보드에서 완료 키를 추가하는 방법을 알고 키보드를 클릭하면 키보드가 닫힙니다.iPhone을 종료하는 iPhone 앱에서 키를 닫습니다 (UITextView 사용)

감사합니다. 누를 때

textField.returnKeyType=UIReturnKeyDone; 

키보드를 제거하려면 텍스트 필드의 위임이 추가 :

또한
- (BOOL)textFieldShouldReturn:(UITextField *)aTextfield { 
    [aTextfield resignFirstResponder]; 
    return YES; 
} 

답변

33

UITextViewDelegate 프로토콜에는 -textViewShouldReturn: 메서드가 없습니다. Return (done) 키를 사용하여 키보드를 닫으려면, 대신 UITextField를 사용하는 것이 가장 좋습니다. UITextView은 여러 줄의 텍스트를 편집하기위한 것이므로 (줄 바꿈을 입력하는 방법이 필요합니다). 당신이 정말 UITextView에서 리턴 키를 타격 할 때 키보드가 사라지게하려면

, 당신은 아마 이런 식으로 뭔가 할 수있는 :

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 
    if ([text isEqual:@"\n"]) { 
    [textView resignFirstResponder]; 
    return NO; 
    } 
    return YES; 
} 
+0

감사! TextView를 사용해야하는 이유는 내가 작업하고있는 앱이 Twitter API이기 때문입니다. 사용자가 게시하기 전에 트윗을 통해 읽으 려한다면 사용자에게 조금 혼란스러워 할 것입니다. – Tapy

-3

그것은 간단합니다

textField.returnKeyType = UIReturnKeyDone; 

텍스트 필드의 델리게이트를 클래스에 설정하고 다음과 같이해야합니다 :

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    [textField resignFirstResponder]; 

    return YES; 
} 

XIB에서 정의 된 UI가있는 경우 returnKeyType을 Interface Builder에서도 설정할 수 있습니다. 반면에 -resignFirstResponder는 키보드가 사라지는 지 확인합니다. 사용자가 완료 버튼을 누를 때 호출되므로 -textFieldShouldReturn : delegate 메소드에서 수행해야합니다.

희망이 도움이됩니다.

+0

예를하지만 키보드를 닫히지 않습니다. – Tapy

+0

죄송합니다. 내 대답에 그것을 추가했습니다. – grahamparks

+10

나는 질문이 UITextField가 아닌 UITextField를 참조하고 있다고 생각한다. –

-5

설정하려면 다음과 같이

+1

그는 UITextField가 아니라 UITextView를 요청합니다. – Domness

+1

또한 질문에 대답하지 .. 질문은 UITextView에 관한 것입니다. –