2012-03-23 2 views
0

화면 하단에있는 움직이는 UItext 필드를 만드는 방법과 키보드가 나타 났을 때 아이폰 애플리케이션에서 keyboared의 맨 위로 이동합니까? Xcode 4.2에서이를 수행하는 방법? whatsapp 및 Skype 채팅과 같습니다. 문자열을 테이블에 입력하는 데 사용하고 싶습니다.이동 가능한 UItextfield를 만드는 방법은 무엇입니까?

+1

[링크] (https://github.com/brandonhamilton/inputtoolbar)에서 원하는대로 작업하는 오픈 소스 프로젝트를 선택하십시오. –

+0

미안하지만, Xcode 4.2 스토리 보레이 딩에는 거의 적용 할 수 없다고 생각합니다. – SultanSh

답변

1

키보드 알림의 수신기로 viewController를 등록해야합니다. 키보드가 나타나면 사용자 사전으로 알림이 실행됩니다. 사전에는 textFields 프레임을 새 위치로 애니메이션하는 데 사용할 화면에 상대적인 키보드 위치와 같은 유용한 정보가 포함됩니다. 문서를 체크 아웃 :

http://developer.apple.com/library/ios/#DOCUMENTATION/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html

은 특히 당신이 원하는 알림은 다음과 같습니다

[[NSNotificationCenter defaultCenter] addObserver:self 
      selector:@selector(keyboardWasShown:) 
      name:UIKeyboardDidShowNotification object:nil]; 

    [[NSNotificationCenter defaultCenter] addObserver:self 
      selector:@selector(keyboardWillBeHidden:) 
      name:UIKeyboardWillHideNotification object:nil]; 

당신은 대부분의 경우에있는 viewDidLoad에서 다음을 추가 할 수 있습니다. 그리고 나중에 알림 (removeObserver :)에 대한 등록을 취소하는 것을 잊지 마십시오. viewDidUnload와 같습니다.

0

Hubert가 언급 한대로 알림을 사용하거나 UITextField가 첫 번째 응답자인지 여부를 지속적으로 확인할 수 있습니다. 첫 번째 응답자 인 경우 텍스트 필드가 선택되고 키보드가 영향을 미칩니다.

-(void)viewDidLoad { 

    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(checkTextField) userInfo:nil repeats:YES]; 

} 

-(void)checkTextField { 

    if (textField isFirstResponder) { 

     //the text field has been tapped and the keyboard will come up, so animate the text field moving up here 


    } else { 

     //the text field is not selected, so it should be in its original position 

    } 

} 
관련 문제