2012-01-16 2 views
0

저는 텍스트 필드 하나와 텍스트 뷰 두 개를 가지고 있습니다 ... 1 개의 콘트롤에서 뭔가를 쓰는 동안 키보드가 팝업됩니다 ...하지만 다른 컨트롤로 이동하고 싶을 때 키보드에 ' 전체보기를 다루 듯이 글을 써 보겠습니다. 문제를 해결할 수 있습니까? 키보드 나던 텍스트 필드/텍스트 뷰를 포함 있도록,보기 위로 이동한다 uitextview 제공하고 uitextfiled키보드가보기에서 사라지지 않습니다. iphone

+0

키보드는 텍스트 필드를 덮고있는 것을 말합니까? 그게 당신 문제인가요? –

+0

예. 문제가 있습니다. –

+0

@khushbu, 먼저 객관적인 c의 기초를 배워야합니다. [this] (http://iphonesdkbasics.blogspot.com/2010/01/disabling-keyboard-on-uitextfield.html)) 함수를 사용하여 uitextfield의 키패드를 비활성화하고 uitextview의 키패드를 숨길 터치 이벤트의 도움을받습니다. 반환 키를 사용할 수 없으므로이 기능을 사용할 수 없으므로 uitextview에 대한 키패드를 숨 깁니다. [try this, this is you think.] http : // stackoverflow. 질문/1126726/how-to-make-a-uitextfield-move-up-when-keyboard-is-present) – Sarah

답변

0

사용 위임 기능 ....

+0

나는 한 가지를 시도했습니다 ... 내 전체보기에서 단추를 찍었습니다 .... 그래서, 내보기의 어떤 부분을 클릭 할 때마다 키보드가 사라질 것입니다 ... 나는 " self.resignResponder "...하지만 작동하지 않습니다 ..... 다른 방법으로 제안 할 수 있습니까? –

+1

self.resign 응답자 대신 [textField resignFirstResponder] – vishy

+0

이어야하며 uitextfield 또는 uitextview에서 응답자를 사임해야합니다. 또는 튜토리얼을 사용하여 튜토리얼을 uitextfield 또는 ios 기반의 텍스트 뷰를 사용합니다. – Ballu

0
- (void) animateTextField: (UITextField*) textField up: (BOOL) up 
{ 
    const int movementDistance = 150; // tweak as needed 
    const float movementDuration = 0.3f; // tweak as needed 

    int movement = (up ? -movementDistance : movementDistance); 

    [UIView beginAnimations: @"anim" context: nil]; 
    [UIView setAnimationBeginsFromCurrentState: YES]; 
    [UIView setAnimationDuration: movementDuration]; 
    self.view.frame = CGRectOffset(self.view.frame, 0, movement); 
    [UIView commitAnimations]; 
} 

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView{ 

     [self animateTextField: textField up: YES]; 
} 
- (void)textViewDidEndEditing:(UITextView *)textView{ 
      [self animateTextField: textField up: NO]; 

} 
1

. 이 같은 ...

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
    if (textField == *textFieldName*) 
    { 
     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDelegate:self]; 
     [UIView setAnimationDuration:0.5]; 
     [UIView setAnimationBeginsFromCurrentState:YES]; 
     self.view.frame = CGRectMake(self.view.frame.origin.x, (self.view.frame.origin.y - 65.0), self.view.frame.size.width, self.view.frame.size.height); 
     [UIView commitAnimations]; 

    } 
} 

- (void)textFieldDidEndEditing:(UITextField *)textField 
{ 
    if (textField == *textFieldName*) 
    { 
     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDelegate:self]; 
     [UIView setAnimationDuration:0.5]; 
     [UIView setAnimationBeginsFromCurrentState:YES]; 
     self.view.frame = CGRectMake(self.view.frame.origin.x, (self.view.frame.origin.y + 65.0), self.view.frame.size.width, self.view.frame.size.height); 
     [UIView commitAnimations]; 
    } 
} 

와 텍스트 뷰의 사용

:

- (void)textViewDidBeginEditing:(UITextView *)textView 

- (void)textViewDidEndEditing:(UITextView *)textView 
0

당신이 당신의 전체보기를 이동하거나 컨트롤 (텍스트 필드를 이동할 수 있으며, 텍스트보기)를 올리거나보기를 스크롤 할 수 있도록 만들어 키보드가 보이도록 스크롤 할 수 있도록하십시오.

+0

키보드는 두 번째 컨트롤러를 포함합니다 ... –

+0

그래도 .. 모든 컨트롤을 스크롤 뷰에 추가 할 수 있으므로 사용자가 키보드로 화면을 스크롤하면 보이는 그는 다른 컨트롤을 볼 수 있습니다 –

관련 문제