2009-08-01 10 views
1

誰もUIImageの背景を持つテキストフィールドを作成する方法を知っていて、ワープロしますか?iPhone上に画像の背景を含むワープロテキストフィールドですか?

UITextFieldではワードラッピングは利用できませんが、UITextViewではバックグラウンドイメージが利用できないようです。また、コントロールのサイズを変更するか、デリゲートがサイズを変更できるように行数が変更されたことを少なくとも警告する必要があります。

このようなコントロールの例は、SMSアプリケーションのメッセージの入力フィールドです。

を編集します。コードには、編集中のテキストを常に表示するテキストフィールドも必要です。どうやら、UITextViewが編集中にサイズを変更すると、何らかの形で現在のテキストにフォーカスが失われます。

ありがとうございます! Aviad。

答えて

2

UITextFieldは単一行のテキストのみをサポートしているため、ワードの折り返しはUITextFieldでは使用できません。

UITextViewを使用します。 TextView.backgroundColor = [UIColor clearColor]を作成します。最初にUIImageを追加し、その上にUITextViewを追加します。サイズが正しいことを確認し、うまくいくはずです。 UITextViewのサイズを変更するよう

は、あなたのUITextViewDelegateに、このような何か:

- (void)textViewDidChange:(UITextView *)textView 
{ 
    NSString *s = textView.text; 
    CGSize testSize = CGSizeMake(textView.frame.size.width, NSIntegerMax); 
    CGSize neededSize = [s sizeWithFont: textView.font constrainedToSize: testSize  lineBreakMode: UILineBreakModeWordWrap]; // or UILineBreakModeCharacterWrap? 

    if (neededSize.height > testSize.height) 
    { 
     // grow textView 
     textView.frame = CGRectMake(textView.frame.origin.x, textView.frame.origin.y, neededSize.width, neededSize.height); 

     // then adjust the image size -- something like this 
     imageView.frame = textView.frame 
    } 

} 
+0

私が言ったように、私はiPhoneと一緒に来るSMSアプリケーションのものに似た振る舞いをしたい。テキストを折り返す必要があるときは、コンポーネント全体が成長する必要があります(UIImageのstretchableImageメッセージを使用しているイメージを含む)。 –

+0

それは良いですか? – Amagrammer

+0

コードについて何か奇妙です。最初に、 "textSize"はありませんが、 "testSize"を意味するかもしれません。 2番目に、最も奇妙なのは、 "requiredSize.height> testSize.height"です。これは、testSizeの高さがNSIntegerMaxであるため、常にfalseを返すでしょう(初期化された2行で、決して変更されません)。 何か不足していますか? –

0

を最終的に私は(フォーカスを変更する回避策の多くのある程度働いていた私自身のコードを書きましたたとえば、すべてのテキストを削除するときなどにサイズを変更するなど)。興味があれば、コードを投稿します。

他のニュースでは、ちょうど今日、別の質問で、IFVerticallyExpandingTextFieldと呼ばれるものを見ました。名前は有望で、コードはここにあり、私はそれを見てみましょう。誰もが似たような問題を抱えている場合は、これも参照してください。

私の間違いとして、私は十分に注意深く読んでいませんでした。IFVerticallyExpandingTextFieldはMac用であり、iPhone用ではありません。

関連する問題