2011-10-24 38 views
1

我正在開發一個代碼,我需要從UITextView執行刪除和退格操作。 我想:如何執行退格和刪除?

-(IBAction)delete:(id)sender{ 
    uitextview.text =[uitextview.text substringToIndex:[uitextview.text length]-1]; 
} 

這個執行的後排空間,並刪除最後一個字符,但如何在一個特定的光標位置刪除特定位置的字符uitextview

請幫我一把。

回答

0

感謝您的建議。我想提出一種方法來執行這項工作。

NSRange range = uitextview.selectedRange;

NSRange selectedRange = uitextview.selectedRange; 

    NSLog(@"%d",selectedRange.length); 
    NSLog(@"%d",selectedRange.location); 
    int temploc=selectedRange.location; 

    NSMutableString *text = [uitextview.text mutableCopy]; 
    // NSLog(@"Length: %d Location: %d", range.length, range.location); 
    if (range.length > 0) { 
     [text deleteCharactersInRange:range]; 
    } 
    if (range.length == 0 && range.location != 0) { 
     NSRange backward = NSMakeRange(range.location - 1, 1); 
     // NSLog(@"Length: %d Location: %d", backward.length, backward.location); 
     [text deleteCharactersInRange:backward]; 
    } 

    uitextview.text = text; 
0

使用UITextViewselectedRange屬性。這表示光標位置和/或選定的文本(如果未選擇文本,長度將爲零)。

所以,如果range.length> 0,則可以使用stringByReplacingCharactersInRange:withString:來刪除所選文本。

否則,創建一個新的範圍,其位置小於您選擇的範圍和長度1,然後刪除此字符。

您可能需要重新設置selectedRange屬性以確保光標在適當的位置結束。我想象所有這些都是在使用標準鍵盤時自動完成的。

+0

我試圖使用NSRange selectedRange = uitextview.selectedRange; (@「%d」,selectedRange.length); \t NSLog(@「%d」,selectedRange.location); \t int temploc = selectedRange.location; 並在刪除位置我給了臨時位置,但它無法工作 –

+0

我不知道你的意思,我更新的答案有幫助嗎?如果沒有,你可以用你正在使用的代碼更新問題,你得到的結果(「不起作用」不是很有用) – jrturton