2012-04-30 17 views
0

URL uipickerviewを使用してテキストをuitextview内に追加しています。問題 - 最初にテキストを挿入するだけで、テキストの最後に2番目に追加します。

現在、私は(行選択方法をしました)以下のようにテキストを追加してい

self.myTextView.text = [NSString stringWithFormat:@"%@ %@", self.myTextView.text, 
      [myTierThreeData objectAtIndex:row]]; 

これは正常に動作しますが、私はカーソルはので、私は

-(void) pickerViewShown:(id)sender{ 
    myCursorPosition = [self.myTextView selectedRange]; 
} 

下にやったここでテキストを挿入したいですピッカービューが表示されると、メンバ変数のカーソル位置を取得します。

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 

NSString *contentsToAdd = [myData objectAtIndex:row]; 
NSMutableString *tfContent = [[NSMutableString alloc] initWithString:[self.myTextView text]]; 
// add content where the cursor was 
NSString *contentsToAddPadded = [NSString stringWithFormat:@"%@ ", contentsToAdd]; 

[tfContent insertString:contentsToAddPadded atIndex:myCursorPosition.location]; 
[self.myTextView setText:tfContent]; 
[tfContent release]; 

myCursorPosition = [self.myTextView selectedRange]; 
} 

上記のコードは初めて動作しますが、次のテキストを追加しようとすると、最後にテキストが追加されます。

私はおそらく最後にカーソル位置をリセットテキストフィールドのテキストを設定し、上記のコード

+0

まず最初に、それは私は2つの単語の間にカーソルを置くと、それは缶length.what総文字列としてカーソル位置の位置を示し、正しく印刷し、初めてnsloggingときdidSelectRow – ader

+0

にmyCursorPosition.locationをnslogging試してみることです私は – user198725878

+0

@ade:pls私に知らせる – user198725878

答えて

1

と間違っているものを知っているので、あなたが持っている唯一のチャンスは、新しいカーソルを計算にあるください。自分でを配置:

  • ピッカービューを起動すると、myCursorPositionの元のカーソル位置 を(あなたが今のように)覚えています。
  • テキストを追加するたびに、 テキスト長をmyCursorPositionに追加し、その値を に挿入して次のテキストを挿入します。
+0

こんにちは、uipickerview内のオプションを選択すると、私たちはカーソルをtextviewの中に表示できます(現在、私のtexviewはフォーカスを失ったと思います) – user198725878

関連する問題