2012-04-21 16 views
2

iOSのFacebookの[Update Status]ビューに似た画面を再現したいと思います。iOS:UITextViewの末尾に編集不可能な文字列を追加する

enter image description here enter image description here

(このテキストは編集可能でなければなりません)ウォーキング(ここでは、過去何が編集すべきではない) - サウスナラビーンビーチで

ユーザーが左に/編集テキストを入力することができるはずです追加された文字列の追加された文字列は、その親内で折り返してクリック可能である必要があります。

これはどのように行われているのですか? (私は最近、Viddyアプリでも見ました)。

テキストが入力されるとフレームを更新するUIAttributedStringを2行に分割して、それが成長するUITextFieldですか?

答えて

3

更新: とにかくユーザーの場所に署名にカーソルをできるようにあなたが望むようにされて見えますが、彼女のタイプは、その場合には
、あなたはこの代わりに

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{ 
    NSInteger signatureLength=20; 
    if(range.location>self.textView.text.length-signatureLength){ 
     return false; 
    } 
    else{ 
     return true; 
    } 
} 
を使用したいと思うことはできませ

オリジナル:あなたはUITextViewDelegate

イムを使用する必要が

plement - (無効)textViewDidChangeSelectionを:(UITextView *)TextViewの方法、のようなもの:だから、基本的に

-(void)textViewDidChangeSelection:(UITextView *)textView{ 
     NSInteger signatureLength=20; 
     NSRange newSelection=self.textView.selectedRange; 
     if(newSelection.location>self.textView.text.length-signatureLength){ 
      [self.textView setSelectedRange:NSMakeRange(self.textView.text.length-signatureLength, 0)]; 
     } 
} 

:この例では

は、のは、これは次のようになり、署名の長さは20であると仮定しましょう選択(==この場合はカーソル)が変更されるたびに傍受し、カーソルが署名の途中にある場合は、直前にカーソルの位置を変更します。 選択肢を長さ0で設定すると、カーソル位置が変更されます。

+0

精度は、署名文字列でtextviewを初期化し、この場合の署名長は20文字であることを前提としています。 –

+0

この方法では、どのように書式設定して、署名文字列をクリック可能にしますか? –

+0

どういう意味ですか?その中でカーソルを点滅させたいときはクリック可能ですか?ただ編集できませんか?それから、 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)テキスト代わりに、その情報で私の答えを編集させてください。 –

関連する問題