0

画像ピッカーを使用して、ライブラリの画像をテキストビューに挿入しました。

pickeDelegatedidFinishPickingImageメソッドで

imgview = [[UIImageView alloc] initWithImage:image];

            NSString *messageText = [[NSString alloc]init];
            messageText = messageView.text;
            CGSize s = [messageText sizeWithFont:[UIFont systemFontOfSize:15] //define your textview font size
                               constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, MAXFLOAT)  //                                      lineBreakMode:UILineBreakModeWordWrap];   
            CGRect frame = CGRectMake(0.0f, s.height+10, 50, 50);//use YourImageView. height and width 
            imgview.frame=frame;

            //[imgview setFrame:CGRectMake(0, 0, 30,30) ];
            [messageView addSubview:imgview];

そして、フォローインデリゲートメソッドロジックを使用して、最後のテキストの最後に画像を追加するロジックを実装しました

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
{
      if ( [text isEqualToString:@"\n"] ) {

      }
      else
      {
            NSString *yourstring = [[NSString alloc]init];
            yourstring = textView.text;
            CGSize s = [yourstring sizeWithFont:[UIFont systemFontOfSize:15] //define your textview font size
                              constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, MAXFLOAT)  // - 40 For cell padding
                                  lineBreakMode:UILineBreakModeWordWrap];   
            CGRect frame = CGRectMake(0.0f, s.height+10, 50, 50);//use YourImageView. height and width 
            imgview.frame=frame;
      }
      return YES;
}

ただし、画像ビューの直前でカーソルが開始するたびに、

だがi need to jump/ move the cursor after the image when ever i added the image, jus like as folows,

私の要件は、ユーザーがテキストビューにテキストを入力でき、テキストビューに画像を追加して、画像の次の行から再びテキストを入力できるようにすることです。

このスタックオーバーフローボックスに画像を添付するのと同じように

ここに画像の説明を入力してください

画像を挿入した後、彼は再びテキストを入力することができました、

これをどのように行うか助けてください..事前に感謝します

私の前の質問:UITextViewへの画像の追加

4

1 に答える 1

0

画像を挿入した後にテキストフィールドに応答させたい場合は、

    [YOURTEXTFIELD becomeFirstResponder];
于 2012-11-07T10:09:28.590 に答える