0

IBAction のいくつかの異なる UITextFields によってテキストが渡される UITextView があります。

textView.text = [NSMutableString stringWithFormat:@"%@ %@",
textView.text,textField1.text]; 

選択したテキストを TextView から削除しようとしています

textField.text = [NSMutableString stringWithString:@""];

ただし、選択したテキストだけでなく、すべてのテキストが削除されます。

誰かが私にこれについての方向性を教えてください。ありがとう。

4

2 に答える 2

0

Apple ドキュメントから:

@property(nonatomic) NSRange selectedRange

iOS 2.2 以前では、選択範囲の長さは常に 0 であり、選択範囲が実際には挿入ポイントであることを示しています。iOS 3.0 以降では、選択範囲の長さが 0 以外になる場合があります。

したがって、次のようにする必要があると思います。

if (textField.selectedRange.location != NSNotFound && textField.selectedRange.length > 0)
    textField.text = [textField.text stringByReplacingCharactersInRange:textField.selectedRange withString:@""];
于 2012-10-10T01:00:22.503 に答える
0

最後に入力したテキスト (例: ) を保存theLastEnteredTextし、変更可能な文字列オブジェクト (例: theContent) から削除して、textField に設定できます。

[theContent deleteCharactersInRange:NSRangeFromString(theLastEnteredText)];
textField.text = theContent;

編集:

前のテキスト コンテンツより前に同じテキスト コンテンツが存在する場合、誤って削除してしまいます。したがって、これを行うより良い方法は次のとおりです。

// .location: theContentLength - theLastEnteredTextLength
// .lenght: theLastEnteredTextLength
NSRange range = {theContentLength - theLastEnteredTextLength, theLastEnteredTextLength};
[theContent deleteCharactersInRange:range];
于 2012-10-10T01:11:56.227 に答える