2011-04-22 2 views

답변

61

viewDidAppear:에서 [yourTextField becomeFirstResponder]으로 전화하십시오.

+1

고마워, 내가 바보가 된 기분 :-) 많이 감사 : 여기

코드입니다 't called ... * Sigh * ty – pkluz

+0

좋은 답변 추가 +1 – Nikhil

+0

그러나보기에 키보드가 표시되지 않습니다. – Szu

7

[myTextField becomeFirstResponder] 트릭을해야합니다.

또한 첫 번째 응답자를 숨길 수있는 UITextFieldDelegate 메소드를 구현해야합니다.

2

MarkGranoff의 대답에 대한 설명으로;

당신이 viewDidLoad 또는 viewWillAppear 내부의 [yourTextField becomeFirstResponder]를 넣어 경우 - 그것은 (당신이 viewDidAppear 방법 내부 becomeFirstResponder 통화를 보류하는 경우 발생하는) 2 초를 기다리지 않고 키보드를 표시합니다.

+1

그러나 viewWillAppear 키보드에서 1 초 또는 2 초 동안 표시하고 즉시 닫습니다 – GSD

+0

'viewWillAppear '사용은 일부 상황에서만 작동하며 다른 상황에서는 작동하지 않습니다. 뷰 컨트롤러가 어떻게 표시되는지에 달려 있다고 생각합니다. –

2

글쎄, 나는이 질문이 이미 여러 번 대답되었다는 것을 알고있다. viewDidAppear 메서드가 호출 된 후 키보드를 표시하는 데 시간이 걸립니다.

viewDidAppear은 물론 사라진 후에 뷰 라이프 사이클에서 호출되는 마지막 방법입니다. 또한 키보드를 메모리에서 찾을 수없는 경우 키보드를 만들어야합니다. 그래서 처음으로 예상했던 것보다 더 많은 시간이 걸립니다. 이러한 이유 때문에 저를 괴롭혔던 약간의 지연이 발생합니다.

viewWillAppear 나는 키보드를 표시하는 시간을 줄이기 위해 항상 becomeFirstResponder 메서드를 호출하지만 키보드를 표시하려면 viewDidAppear 메서드를 사용한 직후 부드러운 애니메이션을 잃지 않아야합니다.

그래서이 작은 속임수는 매력과 같은 작품을 만들었습니다. 필자는 시뮬레이터와 장치 모두에서 테스트했습니다. 귀하의 케이스에서 제대로 작동하지 않으면 다른 옵션은 없지만 승인 된 답변에서 설명한대로 작동하게하십시오.

음, 내가하고있는 일은 UITextField (키보드와 상호 작용하는 모든보기를 사용할 수 있음)을 만들고 키보드가 아직 작성되지 않은 경우 첫 번째 응답자 메소드를 호출하여 내 키보드를 메모리에 두는 것입니다. 따라서 두 번째로 키보드에서 캐시를 가져와 키보드 표시 시간을 단축합니다. 글쎄, 나는이 코드를 키보드를 표시 할 이전 뷰 컨트롤러에 넣었다. 그 때문에 내가 시작하려하지만 난 그게 년후 사용자 정의 방법을 잘못했다고 무슨 일이 있었는지,

- (void)viewDidAppear:(BOOL)animated 
{ 
    UITextField *textField = [[UITextField alloc]init]; 
    [self.view addSubview:textField]; 
    [textField becomeFirstResponder]; 
    [textField resignFirstResponder]; 
    [textField removeFromSuperview]; 
} 
관련 문제