2012-04-30 53 views
0

URL我使用uipickerview在uitextview中添加文本。問題 - 插入文本僅適用於第一次,它第二次追加到文本的末尾

目前我加入如下文字(沒有選擇行法)

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

這工作得很好,但我想插入文本光標所在,所以我沒了下文

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

當顯示pickerview時,將光標位置放在成員變量中。

- (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

第一件事就是嘗試在didSelectRow – ader

+0

nslogging myCursorPosition.location時nslogging的首次它正確打印時我把兩個詞之間的光標,它顯示的光標定位在總串length.what能我做 – user198725878

+0

@ade:請讓我知道 – user198725878

回答

1

可能設置重置光標位置到結束的文本字段,所以你唯一的機會就是計算新的光標將自己定位

  • 當開始選擇器視圖,記得在myCursorPosition原來的光標位置 (像你現在這樣做)。
  • 每次添加文本時, 將文本長度添加到myCursorPosition,並使用該值爲 插入下一個文本。
+0

嗨,我們可以在uipickerview中選擇選項時在textview中顯示光標(目前我認爲我的texview失去了焦點) – user198725878

相關問題