私はgpsnoteでプロジェクトをやっています。誰かがこのアプリケーションに関する情報を持っている場合は、私を案内してください...
このコードは知っていますが、テキストフィールドをキーボードと一緒に使用したい
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
}
ありがとう
最初にコンテンツをスクロール ビューに設定し、viewDidLoad でスクロール ビューを設定します。
[scrollView setContentSize : CGSizeMake (320, 1040)];
次に、viewWillAppear で次の通知を追加します。
表示されているキーボードの場合
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification object:nil];
キーボード隠し用
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillBeHidden:)
name:UIKeyboardWillHideNotification object:nil];
以下は、通知によって呼び出される 2 つの関数です。
- (void)keyboardWasShown:(NSNotification*)aNotification {
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
double keyboardHeight = kbSize.height;
double screenHeight = [UIScreen mainScreen].bounds.size.height - 20;
if(textOrigin > screenHeight - keyboardHeight)
{
double sofset = textOrigin - (screenHeight - keyboardHeight);
CGPoint offset = scrollBackGround.contentOffset;
offset.y += sofset;
[scrollBackGround setContentOffset:offset animated:YES];
}
}
- (void)keyboardWillBeHidden:(NSNotification*)aNotification
{
[scrollBackGround setContentOffset:CGPointMake(0, 0) animated:YES];
}
keyboardWasShown 関数では、キーボードの高さを取得し、textField の y 軸 (関数内の textOrigin) がキーボードの Y 軸より大きいかどうかを確認し、テキスト フィールドを含むスクロールビューのコンテンツを上にスライドさせます。
NOW テキストフィールドの Y 軸を取得する方法。これには、テキスト フィールド デリゲートを使用する必要があります。テキスト フィールドがファーストレスポンダーになると、次のデリゲートがトリガーされます。
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
textOrigin = scrollBackGround.frame.origin.y + textField.frame.origin.y + 20(it is status bar height) + yourNavigationBarheight;
// Make sure to make textOrigin an ivar in your .h file
}
最後に、keyboardWillBeHidden で、スクロールビュー contentview をリセットしています