2016-09-02 6 views
0

私はUITextViewに文字列を持っています。UITextViewに単語の後ろにカーソルを置く

NSString *str = @"Hello world. What @are you @doing ?" 

私がUITextViewをタップすると、カーソルがその文字列をタップするところに移動します。しかし、私はそれが必要です、私はそのテキストビューの任意の文字をタップすると、カーソルは自動的にその単語の終わりに行く。たとえば、「He​​llo」の文字「e」をタップすると、「Hello」の後にカーソルが置かれます。

どうすればいいですか?

+0

'textView.selectedRange'を変更してみますか?範囲(すなわちインデックス)を取得し、次に空白文字を計算しませんか? – zcui93

+0

こんにちは、ありがとうございました。カーソルは正常に動作します。しかし、任意の単語に特殊文字(hello_01など)が含まれている場合、カーソルは@ "_"になります。どうすればこれを防ぐことができますか?これを普通の文字列として扱い、カーソルが最後に来るようにするには? –

+0

正確には、次の空白を自分で見つけて、回答のために 'selectedRange' – zcui93

答えて

1

タッチデバイスの概念とその基礎構造を理解しておく必要があります。 私に説明しましょう。 テキストフィールド/テキストビューがあり、ビュー内にキーボードが表示されていません。テキストフィールドは非アクティブです。スーパービューには、テキストフィールド以外の任意の数のジェスチャー認識子があるかもしれません。 したがって、OSは単にUIエレメントをfirstResponderにするタッチを検出するか、むしろアクティブにします。 テキストフィールドがアクティブになった後、OSはこの時点で他のジェスチャーパターンが再生されることを認識します。この時点で、任意の位置(または長いタップ)をタップして、任意の文字にカーソルを合わせることができます。

ご理解いただけますようお願いいたします。

+0

thanxを設定する必要があります。しかし、長いタップやジェスチャーなしでそれを行うことは可能ですか?私は一回のタップでそれが必要です。 –

0

これはtextviewのデフォルトの動作です。あなたはそれのための追加のセットアップを行う必要はありません!長押しするとカーソルが特定の文字に移動し、そうでなければ単語の最後に移動します。これがデフォルト動作です。

+0

こんにちは、ありがとうございました。カーソルは正常に動作します。しかし、任意の単語に特殊文字(hello_01など)が含まれている場合、カーソルは@ "_"になります。どうすればこれを防ぐことができますか?これを普通の文字列として扱い、カーソルが最後に来るようにするには? –

+0

これは不可能だと思います。なぜデフォルト動作を変更したいのですか? – Lion

関連する問題