2013-12-15 11 views
8

私はiOS7のみを対象としています。問題iOS 7でキーボードが表示されているときの「サイズ変更」UITextView

UITextViewキーボードが表示されているときに「サイズ変更」したいので、キーボードの背後に隠れるのではなく、すべてのテキストを見ることができます。私はこれまで、いくつかの異なるアプローチを検討してきた

...

1)UITextViewキーボードショーのフレームを変更します。

次の質問は、私はこのアプローチを持っている同じ問題の詳細 - 正しく設定されているフレームにもかかわらず、最後の行/カーソルがUITextViewの境界を超えて拡張されますので、視界の外にある:

UITextView cursor below frame when changing frame

この効果は、次のスクリーンショットから見ることができます。 UITextViewには緑の背景があります。赤い背景のあるUIViewに追加されました。カーソルが...

enter image description here

2であり、矢印は、私は、これは/好ましいアプローチを推奨することを信じてUITextView

contentInsetプロパティを変更)を示しています。注、私は消える/表示されるキーボードに基づいてビューのサイズを変更するためのAppleのドキュメントを読んで:私のコードで

https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html#//apple_ref/doc/uid/TP40009542-CH5-SW7

が、私は何の効果も得ていないよ、私はUIEdgeInsetsの下のコンポーネントを変更したとき。

上記のよう

同じ例、赤UIViewUITextView緑、テキストは、キーボードの下に消える:

- (void)keyboardWillShow:(NSNotification*)notification 
{ 
    CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 

    UIEdgeInsets insets = _textView.contentInset; 
    insets.bottom += keyboardSize.height; 
    _textView.contentInset = insets; 
    _textView.scrollIndicatorInsets = insets; 
} 

scrollIndicatorInsets

enter image description here

そしてここでは、コードです部分はうまく動作します。スクリーンショットで描写するのは難しいですが、スクロールインジケータは適切な場所で開始および停止し、正しいサイズで表示されます。

私は人々が同じような問題を抱えている質問をたくさん読んだ。

3)は、この質問の答えはiOSの7にtextContainerInset代わりのcontentInsetを使用することを提案UITextView

textContainerInsetを変更する:

UITextView contentInset not working in UITextView on iOS 7?

私もこれを試してみたが、まだUITextViewのサイズを変更することはできません。好適な/正しいアプローチである

UITextView content Inset Bottom not working iOS7

質問

  • textContainerInset:この質問で

    、 'マン' もcontentInsettextContainerInsetの両方に問題を有していますまたはcontentInset

  • 上記のコードでcontentInsetを設定すると、何か不足していますか?私は設定する必要がある何か他にありますか?
  • は、iOS 7のこれらのバグですか?

おかげ

+0

あなたは 'UIKeyboardFrameEndUserInfoKey'代わりの開始を使用してみました:

https://github.com/steipete/PSPDFTextView

をここでより多くの情報ですか? Beginは最終的なサイズを正しく表現していない可能性があります。 – gdavis

+0

提案していただきありがとうございますが、問題はキーボードのサイズではありません。私はそれが正しいことを確認できることを確認します。私はUITextViewがiOS 7とバグがあることを他の人から見てきました...私の使用からは、上記のアプローチ(1)の原因がバグだと思われます。アプローチ(2)と(3)については、私がAPIを正しく理解/使用しているかどうかはわかりません。 7.1はまだベータ版です。私たちはそれについて(まだ)話すことができるかどうかは分かりません。 –

+0

UITextViewのインセットではなく、フレームのサイズを変更するとどうなりますか?キーボードのフレームをUITextViewのスーパービューに変換し、交差を行ってビューのサイズをどれだけ大きくするかを確認できます。以前私はいくつかのプロジェクトでこれを成功させました。 – gdavis

答えて