상단 텍스트 필드를 제외하고, 타이핑을 시작할 때 iphone 키보드가 나머지 텍스트 필드를 모두 숨 깁니다. 키보드 위에 활성 텍스트 필드를 표시 한 다음 키보드가 숨겨 졌을 때 정상 텍스트로 다시 가져 오려면 어떻게해야합니까?아이폰 키보드가 나타나면 활성 텍스트 필드를 중앙에 표시하는 방법은 무엇입니까?
답변
보기 상단에 스크롤 뷰를 사용하고 선택한 텍스트 필드에 따라 수학적 contentOffset 설정을 구현해야합니다. 선택한 텍스트 필드는 델리게이트 메서드에서 가져올 수 있으며 오프셋 계산은 텍스트 필드 프레임
과 UIKeyboardWillShowNotification
및 UIKeyboardWillHideNotification
으로 처리 할 수 있습니다. 이러한 알림과 함께 제공된 NSNotification
개체에는 키보드가 애니메이션 처리를 마친 후 프레임에 대한 정보가 포함 된 userInfo 사전이 있습니다. 이러한 알림에 대한 응답으로 레이아웃을 조정하여 원하는 항목을 키보드로 가리지 않도록하십시오.
모든 텍스트 필드를 스크롤보기에 배치하기 전에 다음 코드를 사용하십시오.
#define kOFFSET_FOR_KEYBOARD 80.0
-(void)keyboardWillShow {
// Animate the current view out of the way
if (self.view.frame.origin.y >= 0)
{
[self setViewMovedUp:YES];
}
else if (self.view.frame.origin.y < 0)
{
[self setViewMovedUp:NO];
}
}
-(void)keyboardWillHide {
if (self.view.frame.origin.y >= 0)
{
[self setViewMovedUp:YES];
}
else if (self.view.frame.origin.y < 0)
{
[self setViewMovedUp:NO];
}
}
-(void)textFieldDidBeginEditing:(UITextField *)sender
{
if ([sender isEqual:mailTf])
{
//move the main view, so that the keyboard does not hide it.
if (self.view.frame.origin.y >= 0)
{
[self setViewMovedUp:YES];
}
}
}
//method to move the view up/down whenever the keyboard is shown/dismissed
-(void)setViewMovedUp:(BOOL)movedUp
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3]; // if you want to slide up the view
CGRect rect = self.view.frame;
if (movedUp)
{
// 1. move the view's origin up so that the text field that will be hidden come above the keyboard
// 2. increase the size of the view so that the area behind the keyboard is covered up.
rect.origin.y -= kOFFSET_FOR_KEYBOARD;
rect.size.height += kOFFSET_FOR_KEYBOARD;
}
else
{
// revert back to the normal state.
rect.origin.y += kOFFSET_FOR_KEYBOARD;
rect.size.height -= kOFFSET_FOR_KEYBOARD;
}
self.view.frame = rect;
[UIView commitAnimations];
}
- (void)viewWillAppear:(BOOL)animated
{
// register for keyboard notifications
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow)
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide)
name:UIKeyboardWillHideNotification
object:nil];
}
- (void)viewWillDisappear:(BOOL)animated
{
// unregister for keyboard notifications while not visible.
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:UIKeyboardWillHideNotification
object:nil];
}
이 UITextField
UIScrollView
에 넣고 같은 UIScrollView
의 contentOffSet
재산 사용
-(BOOL) textFieldShouldBeginEditing:(UITextField *)textField
{
if (textField == txt1) //
{
[txt1 becomesFirstResponder];
scrMainView.contentOffset = CGPointMake(0, 20);
}
else if (textField == txt2) //
{
[txt1 resignFirstResponder];
[txt2 becomesFirstResponder];
scrMainView.contentOffset = CGPointMake(0, 60);
}
//And so on..
return YES;
}
희망을, 당신은 답을 얻을 수 있습니다.
감사합니다.
'scrMainView'란 무엇입니까? 적절한 세부 사항을 언급하면 사용자는 당신이 무엇을 제안하는지 알게되지 않을 것입니다. 'scrMainView'는 아마 scollview 맞습니까? –
예. scrMainView 내 scrollview, 그래서 그것은 사용자가 쉽게 상호 작용할 수 있도록 조금 상한에 콘텐츠 오프셋을 설정합니다. –
자세한 내용을 입력하십시오. 그냥 내 편집을 봐. 그것은 당신의 대답에 대한 명확한 생각을 줄 것입니다. –
- 1. 텍스트 필드를 선택한 후 키보드가 나타나면 이상한 iOS5 글리치가 발생합니다.
- 2. 키보드가 나타나면 UIViewController가 위로 이동합니다.
- 3. 대문자 C에 키보드가 나타나면 스크롤하는 방법은 무엇입니까?
- 4. 키보드가 나타나면 전체 레이아웃을 스크롤하는 방법은 무엇입니까?
- 5. 키보드가 나타나면 ActionBar가 숨김
- 6. 활성 텍스트 필드를 결정하는 방법
- 7. 키보드가 텍스트 필드를 숨기기
- 8. 가상 키보드로 숨겨진 텍스트 필드를 표시하는 방법은 무엇입니까?
- 9. iPad에서 키보드가 나타나면 어떻게 위로 이동합니까?
- 10. IOS : 키보드가 나타나면 TextField 위로 이동
- 11. 키보드가 나타나면 UIPopoverController가 iOS 7에서 이상하게 움직입니다.
- 12. 키보드가 나타나면 UITableViewController가 스크롤되지 않습니다.
- 13. 키보드가 나타나면 레이아웃 내부에서 잠금보기
- 14. 키보드가 나타나면 양식 시트 조정
- 15. 아이폰 : 키보드가 나는 상황이
- 16. 키보드가 나타나면 UI보기의 크기를 동일하게 유지하는 방법은 무엇입니까?
- 17. Ios 시뮬레이터 - 키보드가 나타나면, 어떻게하면 사라지게되고, 관련된 ux 패턴은 무엇입니까?
- 18. 키보드가 Xcode 6에 나타나면 사라지는보기를 수정하는 방법?
- 19. 키보드가 나타나면 보이는 영역에 안드로이드보기를 유지하십시오
- 20. 키보드가 나타나면 내보기를 조금 위로 드래그하는 방법?
- 21. HTML5 : 키보드가 나타나면 iOS 화면이 위로 스크롤됩니다.
- 22. 키보드가 나타나면 스크롤보기 : 라이브러리 또는 DIY?
- 23. 텍스트 필드를 클릭했지만 키보드가 나타나지 않은 상태에서 모달 뷰를 표시하는 방법은 무엇입니까?
- 24. 아이폰 프로그래밍에서 셀에 여러 필드를 표시하는 방법은 무엇입니까?
- 25. 화면 중앙에 Google지도를 중앙에 배치하는 방법은 무엇입니까?
- 26. 텍스트 내용에 따라 플로팅 텍스트 필드를 표시하는 방법은 무엇입니까?
- 27. 키보드가 여기에 아이폰 OS
- 28. 키보드가 나타나면 ImageView를 숨기고 키보드가 사라질 때 표시하십시오
- 29. 테이블 중앙에 이미지를 표시하는 방법은 무엇입니까?
- 30. 화면 중앙에 메시지 상자를 표시하는 방법은 무엇입니까?
여기에 코드를 붙여 넣을 수 있습니까? –
가상 키보드가 팝업되면 전체보기를 위로 이동하십시오. 이것을보십시오. http://stackoverflow.com/questions/15145341/undock-keyboard-programmatically –