文字列を表示するコンピューティングデバイスの表示画面上にカーソルを配置するための方法であって、ユーザから前記文字列に関連付けられた前記表示画面上の第1の入力位置を指示する第1の入力を受信するステップと、前記第1の入力位置に基づいて、第1の複数の配置位置の中から第1のカーソル位置を選択するステップであって、前記第1の複数の配置位置の各々は前記文字列の文字に隣接しているステップと、前記表示画面上で前記第1のカーソル位置にカーソルを表示し、前記コンピューティングデバイスを、機能が前記文字列に対する前記第1のカーソル位置に少なくとも部分的に基づいて実行される、第1の状態に配置するステップと、前記デバイスが前記第1の状態にある間、前記文字列に関連付けられた前記表示画面上の第2の入力位置を指示する第2の入力をユーザから受信するステップと、前記第2の入力位置に基づいて、第2の複数の配置位置の中から第2のカーソル位置を選択するステップであって、前記第2の複数の配置位置の各々は前記文字列の文字に隣接しているステップと、前記表示画面上で前記第2のカーソル位置に前記カーソルを表示するステップと、を備え、前記第1の複数の配置位置は、前記第2の複数の配置位置よりも文字列内でより少ない位置を備える、ことを特徴とする方法。前記第1の複数の配置位置は、前記文字列の後の位置および前記文字列の前の位置を備え、前記第2の複数の配置位置の各々は、前記文字列の2つの隣接文字間の位置を備える、請求項1に記載の方法。前記第1の入力位置が前記文字列の第1の半分以内の位置に対応する場合に、前記文字列の前の位置である前記第1のカーソル位置を選択するステップと、前記第1の入力位置が前記文字列の第2の半分以内の位置に対応する場合に、前記文字列の後の位置である前記第1のカーソル位置を選択するステップと、をさらに備える、請求項2に記載の方法。前記第1の入力位置が前記文字列の先頭で文字の第1の所定数に対応する場合に、前記文字列の前の位置である前記第1のカーソル位置を選択するステップと、前記第1の入力位置が前記文字列の末尾で文字の第2の所定数内である場合に、前記文字列の後の位置である前記第1のカーソル位置を選択するステップと、をさらに備える、請求項2に記載の方法。前記第1の複数の配置位置は、前記文字列の先頭で文字の第1の所定数内にはなく、前記文字列の末尾で文字の第2の所定数内にはない、前記文字列の各文字に隣接する中間配置位置、をさらに備え、前記第1の入力位置が特定の中間配置位置に対応する場合に、前記特定の中間配置位置である前記第1のカーソル位置を選択するステップと、をさらに備える、請求項4に記載の方法。コンピュータシステムであって、表示画面と、ユーザから開始位置、パス、および、フィニッシング位置を備える第1のドラッグ入力を受信するように構成された少なくとも1つのセンサと、前記表示画面上に文字列および第1のグリッパを表示し、前記グリッパは前記文字列の第1の文字に関連付けられた第1のグリッパ位置に表示され、前記開始位置が前記第1のグリッパ位置に対応する場合に、前記フィニッシング位置に対応する前記文字列の第2の文字を決定し、前記第1の文字および第2の文字との間の前記文字列の一部を強調表示し、第2のグリッパを前記第2の文字に関連付けられた第2のグリッパの位置に表示し、前記第1のグリッパを前記第1のグリッパ位置に表示するように構成された少なくとも1つのプロセッサと、を備える、ことを特徴とするコンピュータシステム。前記少なくとも1つのプロセッサは、さらに、前記開始位置が前記第1のグリッパの位置に対応する場合に、前記ドラッグ入力が前記少なくとも1つのセンサにより受信されている間、前記第1のグリッパを前記表示画面上で表示中止するように構成される、請求項6に記載のコンピュータシステム。前記少なくとも1つのプロセッサは、さらに、前記少なくとも1つのセンサが、前記第1のグリッパ位置に対応するタップ位置で、前記第2のグリッパ位置で、または、テキストの前記強調表示された部分に関連付けられた位置でタップ入力を受信する場合に、前記表示画面上にコンテキストメニューを表示するように構成される、請求項6に記載のコンピュータシステム。前記第1のグリッパは前記ユーザから前記第1のドラッグ入力を受信する前に表示され、前記第1のグリッパ位置はカーソル位置の下方にあり、前記少なくとも1つのプロセッサは、さらに、前記テキストの第1の文字に隣接する前記カーソル位置に前記表示画面上でカーソルを表示するように構成される、請求項8に記載のコンピュータシステム。前記少なくとも1つのプロセッサは、さらに、前記第1の文字および前記第2の文字が、前記第1のグリッパおよび前記第2のグリッパの幅よりもより近く一緒にある場合に、前記第1のグリッパを更新された第1のグリッパ位置に再表示し、前記第2のグリッパ位置を前記第1のグリッパおよび前記第2のグリッパが重ならないように前記更新された第1のグリッパ位置から離して配置するように構成される、請求項6に記載のコンピュータシステム。現代的なタッチスクリーンデバイスでは、ユーザはデバイスの効率的な操作を可能にする直感的でシンプルなユーザインターフェイスを期待している。本明細書の記載は、シンプルなカーソル配置およびオクルージョンフリー閉塞フリー、制限無しのテキスト選択でのユーザインターフェイスを実装するための技術である。ユーザインターフェイスは、モバイルデバイス、例えばハンドヘルドデバイス、ラップトップ、またはタブレットコンピュータのユーザが迅速かつ効率的にこれらの操作を実行できるように最適化される。カーソルの配置はユーザの簡単なタップ入力で達成されてもよい。最初に、カーソルがおおまかに配置されてよい。ユーザからのさらなる入力で、カーソルがより正確に配置されてもよい。ユーザがインタラクトしてもよい画面上の位置の視覚的な表示はグリッパgripperと呼ばれ、それが関連付けられているテキスト行の下方に表示されてもよい。本ユーザインターフェイスは、また、ユーザがより正確に単一のテキスト行のテキストを選択することを可能にするセーフティゾーンsaftyzoneを実装してもよい。いくつかの実施形態では、カーソルはユーザからの位置指示を受信することによりコンピューティングデバイスの表示画面上に配置されてもよく、ユーザからの指示はテキストまたは文字列を指示する。初期のカーソル位置が、表示されているコンテンツに関する他の情報と組み合わされて、位置指示に基づいて選択され、カーソルがその位置に表示され、初期のカーソル位置はユーザにより指示される位置に対しておおまかに位置決めされる。コンピューティングデバイスは機能の実行が初期のカーソル位置に基づいてされた状態に置かれる。第2の位置指示が次に受信されてもよい。より正確なカーソル位置は第2の位置指示に基づいて選択されてもよく、カーソルがより正確なカーソル位置に表示される。いくつかの実施形態では、表示画面、センサおよびプロセッサを有するコンピュータシステムはテキストを選択するためのユーザインターフェイスを実装する。テキストなどの文字列はグリッパと共に表示画面上に表示される。ユーザはセンサにより決定されるグリッパを、文字列の第1の文字に関連付けられている第1の位置から文字列の第2の文字までドラッグしてもよい。第1および第2の文字との間のテキストが強調表示され、グリッパは第1の位置に再度表示され、第2のグリッパが文字列の第2の文字に対応した位置に表示される。いくつかの実施形態では、テキストの複数行が表示画面により表示されてもよい。テキストの一部分が選択されてもよく、テキストを強調表示することにより指示される。ユーザは選択されたテキストの終了点をドラッグすることにより選択されているテキストの一部分を調整してもよい。ドラッグ入力が受信されると、選択されたテキストはユーザが指示している現在位置に基づいて更新される。第1のモードでは、ユーザが閾値距離を越えて移動しない場合は、終了点が行を変更しないように、デバイスは、ユーザにより指示された垂直位置のエラーに対して比較的大きな閾値を許容する。一旦閾値距離を越え、デバイスがユーザからのドラッグ入力を受信し続けると、デバイスは比較的大きな閾値よりも小さい閾値距離が使用される第2のモードに入る。このように、第2のモードでは、ユーザは比較的小さな閾値距離を単に通過させることにより、選択されたテキストの終了点を行から行へ移動させることができる。選択して強調表示するいくつかの方法はコンピュータ読み取り可能な記憶装置に記憶された命令を実行するコンピューティングシステムのプロセッサにより実行されてもよい。上記は添付の特許請求の範囲により定義される本発明の非限定的な要約である。添付の図面は縮尺通りに描かれることを意図していない。図面では、様々な図に示されている同一又はほぼ同一の各コンポーネントは、同様の数字により表される。明瞭さの目的のために、すべての図面ですべてのコンポーネントに符号が付けられている訳ではない。本発明者らは、タッチスクリーンデバイスのための使いやすく効率的なユーザインターフェイスを提供するためには、カーソルを配置することが単純で直接的であり、かつ指を使用してコマンドをデバイスに入力することから生じる不正確さを考慮することが望ましいことを認識し理解している。本発明者らは、ユーザが直感的、効率的なユーザエクスペリエンスの結果、テキストを指で遮らずに選択されているテキストを直接インタラクトすることを可能にするユーザインターフェイスを提供することをさらに認識し理解している。図1は、本発明が実施され得る適切なコンピューティングシステム環境100の一例を示す。コンピューティングシステム環境100は適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲について何ら限定を示唆するものではない。コンピューティング環境100は、例示的な動作環境100に示すコンポーネントのいずれかまたはその組み合わせに関する依存性または要件を有すると解釈されるべきではない。本発明の実施形態は、多数の他の汎用または専用コンピューティングシステム環境または構成で動作可能である。本発明で使用するのに好適であり得る周知のコンピューティングシステム、環境、および/または構成の例は、これらに限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、携帯電話、タブレットコンピュータ、ネットブック、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境等を含む。コンピューティング環境は、プログラムモジュールなどのコンピュータ実行可能命令を実行してもよい。一般に、プログラムモジュールは特定のタスクを実行する、または、特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明の実施形態は、また、通信ネットワークを介してリンクされるリモート処理デバイスによりタスクが実行される、分散コンピューティング環境で実施されてもよい。分散コンピューティング環境において、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモートの両方のコンピュータ記憶媒体に配置されてもよい。図1に関連して、効率的でユーザフレンドリなユーザインターフェイスを実現するための例示的なシステムは、コンピュータ110の形態の汎用コンピューティングデバイスを含む。コンピュータ110のコンポーネントは、これらには限定されないが、処理ユニット120すなわちプロセッサ、システムメモリ130、およびシステムメモリを含む様々なシステムコンポーネントを処理ユニット120に結合するシステムバス121を含んでよい。システムバス121はメモリバスまたはメモリコントローラ、周辺バス、および任意の様々なバスアーキテクチャを使用するローカルバスを含むいくつかのタイプのバス構造のいずれであってもよい。一例として、限定はしないが、このようなアーキテクチャには、業界標準アーキテクチャISAバス、マイクロチャネルアーキテクチャMCAバス、拡張ISAEISAバス、ビデオエレクトロニクス規格協会VESAローカルバス、およびメザニンバスとしても知られている周辺コンポーネントインターコネクトPCIバスが含まれる。コンピュータ110は、様々なコンピュータ可読媒体を含んでいてもよい。コンピュータ可読媒体は、コンピュータ110によりアクセスできるものであって、揮発性および不揮発性の媒体、リムーバブルおよび非リムーバブル媒体の両方を含むことができる任意の利用可能な媒体であり得る。一例として、限定はしないが、コンピュータ可読媒体はコンピュータ記憶媒体および通信媒体を含んでもよい。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または、他のデータなどの情報を記憶するための任意の方法または技術で実装された、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体の両方を含む。コンピュータ記憶媒体は、限定はしないが、所望の情報を保管するために使用することができ、コンピュータ110によりアクセスできるRAM、ROM、EEPROM、フラッシュメモリ、または、他のメモリ技術、CD-ROM、デジタル多用途ディスクDVD、または、他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスク記憶装置、または、他の磁気記憶装置、または、他の任意の媒体等を含む。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、または、搬送波または他の移送機構などの変調データ信号におけるその他のデータを具現化し、任意の情報配信媒体を含む。変調データ信号modulateddatasignalという用語は、信号内の情報を符号化するような方法で設定または変更された特性の1つまたは複数を有する信号を意味する。一例として、限定はしないが、通信媒体は有線ネットワークまたは直接有線接続などの有線媒体、および、音響、RF、赤外線、および、他の無線媒体などの無線媒体を含む。上記のいずれの組み合わせもコンピュータ可読媒体の範囲内に含まれるべきである。システムメモリ130は、読み取り専用メモリROM131、および、ランダムアクセスメモリRAM132のような、揮発性および/または不揮発性メモリ形式のコンピュータ記憶媒体を含む。起動時などにコンピュータ110内の要素間での情報の転送を助ける基本ルーチンを含む基本入力/出力システム133BIOSは、通常ROM131に格納される。RAM132は即時にアクセス可能な、および/または、処理ユニット120により現在操作されているデータおよび/またはプログラムモジュールを通常含む。一例として、限定はしないが、図1はオペレーティングシステムOS134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示す。コンピュータ110は、また、他のリムーバブル/非リムーバブル、揮発性/不揮発性のコンピュータ記憶媒体を含んでよい。単なる例として、図1は非リムーバブル、不揮発性磁気媒体に対し読み取りまたは書き込みを行うハードディスクドライブ141、リムーバブル、不揮発性磁気ディスク152に対し読み取りまたは書き込みを行う磁気ディスクドライブ151、およびCD-ROM、DVD、または、他の光学媒体などのようなリムーバブル、不揮発性光ディスク156に対し読み取りまたは書き込みを行う光ディスクドライブ155を示す。例示的な動作環境で使用できる他のリムーバブル/非リムーバブル、揮発性/不揮発性のコンピュータ記憶媒体には、限定はしないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれる。ハードディスクドライブ141はインターフェイス140などのような非リムーバブルメモリインターフェイスを介してシステムバス121に通常接続され、磁気ディスクドライブ151および光ディスクドライブ155はインターフェイス150などのようなリムーバブルメモリインターフェイスによりシステムバス121に通常接続される。上述した図1に示すドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ110用の他のデータのストレージを提供する。図1では、例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、および、プログラムデータ147を保管するものとして示される。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、および、プログラムデータ137と同じでもあり得るし、異なることもあり得ることに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、および、プログラムデータ147は、最低でもそれらが異なるコピーであることを示すために、ここでは異なる番号が与えられている。ユーザは、キーボード162、および、一般にマウス、トラックボールまたはタッチパッドと呼ばれるポインティングデバイス161などの入力デバイスを介して、コンピュータ110にコマンドおよび情報を入力してもよい。これらの入力デバイスはいくつかの実施形態において存在し得るが、コンピュータ110の動作に必要とされない。いくつかの実施形態では、表示画面191は、ユーザの1本または複数の指、または、スタイラス、または、ペンのような、他の入力デバイスから入力を受信することができるタッチスクリーンセンサ172を含む。他の入力デバイス図示せずはマイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ衛星放送受信アンテナ、スキャナなどを含んでいてもよい。これら、および、他の入力デバイスは、システムバスに結合されたユーザ入力インターフェイス160を介して処理ユニット120にしばしば接続されるが、パラレルポート、ゲームポート、または、ユニバーサルシリアルバスUSBなどの他のインターフェイス、および、バス構造により接続されてもよい。モニタ191、または、他のタイプの表示デバイスも、また、ビデオインターフェイス190などのようなインターフェイスを介してシステムバス121に接続される。OS134は、タッチスクリーンに関連付けられるタッチスクリーンエンジンを備えていてもよい。タッチスクリーンエンジンは、タッチセンサ172からの入力を受信し、入力を処理してOS134の他のコンポーネント、アプリケーションプログラム135、または、他のプログラムモジュール136などのような他のコンポーネントへの入力に関する情報を提供する。タッチスクリーンセンサ172からの入力は、画面191上に表示される文字、または、他のアイテムの選択を指示してもよい。入力は、また、ユーザにより選択されたようにカーソルの位置を指示してもよい。タッチスクリーンエンジンは、また、他のコンポーネントから情報を受信し、情報を表示画面191上にレンダリングしてもよい。例えば、OS132は、表示191上で、コンテキストメニューに表示するタッチスクリーンエンジンに情報を提供してもよい。本発明の実施形態は、コンポーネントが選択およびカーソル位置を識別する方法を変更するために実施されてもよい。実施形態は、また、ユーザインターフェイスが、文字選択およびカーソル位置を指示するために提示される方法を変更してもよい。図2は、本発明の一実施形態の例示的なコンピューティングデバイス200の簡略図を示す。コンピューティングデバイス200は、図1に関連する上記のコンポーネントのいくつかまたはすべてを有してもよいが、図1のすべての機能を含むように限定されるものではない。コンピューティングデバイス200の図示されたコンポーネントは、任意の方法で配置されてもよく、図2に示す特定のレイアウトまたはコンポーネントに限定されるものではない。コンピューティングデバイス200は、1つまたは複数の文字列260を表示する表示画面250を備える。文字列は、いくつか例を挙げると、任意の文字、例えば、文字、数字、句読点、空白文字を含んでもよい。文字列は単一の単語、文、段落、または、文字の任意の他の集合であってもよい。図2の例示的な実施形態は、文字、スペース、および、句読点を含むテキストの複数行の文章を備える文字列260を示す。本明細書では、ラテン文字を含むテキストが文字の一例として用いられているが、本発明の実施形態は、任意の特定の実施に限定されるものではない。例えば、いくつかの実施形態は、日本語、中国語、韓国語、アラビア語、または、ヒンディー語の文字を使用してもよい。本発明の実施形態は、文字列が縦方向に配列される縦書き言語で使用されてもよい。コンピューティングデバイス200の表示画面250は、1つまたは複数のタッチスクリーンセンサ240と関連している。センサ、および、表示画面の組み合わせは、タッチスクリーンと呼ばれてよい。このように、コンピューティングデバイス200は、タッチスクリーンデバイスと呼ばれてよい。コンピューティングデバイス200は、タッチスクリーン技術の任意のタイプを使用してもよい。例えば、タッチスクリーンは、抵抗性、容量性、音響、赤外線、または、他の任意のタッチスクリーン技術であってもよい。入力は、スタイラス、ペン、または、1本または複数の指のようなユーザの身体によって、タッチスクリーンセンサ240により受信されてもよい。本発明の実施形態は、タッチスクリーンの任意の特定の実施に限定されるものではない。1つまたは複数のタッチスクリーンセンサ240を介して入力を受け付けることに加えて、コンピューティングデバイス200は、ユーザからの入力を受け付けるための1つまたは複数のボタン230を有してよい。ボタンは、コンピューティングデバイス200の前面、背面、または、側面にあってもよい。それらは機械式ボタン、回転式入力デバイス、容量性ボタン、または、当技術分野で公知の入力デバイスの他の任意のタイプであってもよい。図1に関連して説明したように、コンピューティングデバイス200は、また、ユーザからの入力を受信するためのキーボード、マウス、または、他の入力デバイスを有してよいが、これらは必ずしも必須ではない。図2は、コンピューティングデバイス200への方向情報を指示するための四方向の指向性パッドとしてのボタン230を示す。コンピューティングデバイスに対して、オン/オフ、または、スタンバイモードに移行するかどうかを指示する電源ボタン220も示されている。本発明の実施形態は、ボタンまたは入力デバイスの任意の特定の実施に限定されるものではない。コンピューティングデバイス200のユーザは、表示画面250に表示されるテキスト260に対して機能を実行したい場合がある。機能を実行するために、ユーザは、カーソルの所望の配置および/または選択される所望のテキストを指示するために、タッチスクリーンを使用してもよい。カーソルは、キャレットcaret、または、矢印などの場所の任意の視覚的なインジケータであってもよい。機能は、カーソルの位置、または、ユーザにより選択されたテキストに依存してよい。機能は、また、デバイスの他の設定に依存してもよい。例えば、ユーザにより、カーソルが特定の位置に配置され、追加のテキストが入力された場合、追加のテキストはカーソルの位置に挿入されてもよく、または、追加のテキストは、デバイスが挿入モード、または、上書きモードのどちらにあるかに基づいて、カーソル以下の既存のテキストを上書きしてもよい。貼り付け機能も、また、以前に切り取り、または、コピーされたテキストがカーソル位置に挿入されてもよいようにカーソルの配置に基づいて実行されてよい。別の例では、削除コマンドを選択し、カーソルの前、または、カーソルの後の文字などのようなカーソルに直接隣接する、1つまたは複数の文字を削除してもよい。テキストが選択されている場合、上記と同じ機能が実行されてもよいが、動作は選択されているテキストに基づいて異なることになる。例えば、テキストが選択された時に追加のテキストが入力されるか、または、貼り付けされた場合、選択されたテキストは、追加のテキストを用いて上書きされることになる。削除コマンドを選択すると、選択されたテキストを削除する。テキストが選択された際に、ユーザが利用可能な追加機能があってもよい。例えば、選択されたテキストが、コピー、または、切り取りされてもよい。また、選択されたテキストのスタイルは、ユーザにより変更されてもよい。例えば、選択されたテキストは、ボールド、または、イタリックにされてもよく、フォントが変更されてもよく、フォントのサイズが変更されてもよい。カーソルが特定の場所にあるかまたはテキストが選択されているかどうかに基づいた機能のこの異なる動作は、デバイスが第1の状態および第2の状態にあるとして説明されてもよい。コンピューティングデバイス200により決定された指示位置が、タッチスクリーン上でユーザタッチが検出された物理的な位置に正確に対応していなくてもよいように、コンピューティングデバイス200は、ユーザの選択に補正を行ってよいことに留意すべきである。例えば、タッチスクリーンデバイスのユーザには、指示したい実際の位置よりもわずかに低い位置で画面をタッチすることが知られている。これは、コンピューティングデバイスが、自動的に補正できる単なる視点の問題である。このように、本発明の実施形態は、この効果、および、他の同様の効果を説明するための既に補正されたユーザの位置であってもよい。タッチスクリーンセンサ240を介してユーザにより受信される入力は、任意の適切な入力コマンドであってもよい。いくつかの実施形態では、入力は、ユーザが一瞬画面に触れたことを示すタップ入力であってもよい。タップは、当技術分野で公知の技術により検出されてもよい。一瞬とは、通常1秒未満である。いくつかの実施形態では、入力は、ドラッグ入力であってもよく、ユーザは、開始位置で指を画面にタッチし、画面上で指をドラッグすることによりパスを作成し画面との接触を維持しながら、終了位置で指を離すことによりパスを終端する。他の実施形態では、入力は、プレスアンドホールドpressandhold入力であってもよく、ユーザが画面にタッチし、暫くの間それを保持holdし、次に、画面との接触を終了する。入力のこれらタイプの各々は、当技術分野で知られている異なる技術を用いて検出されてもよい。本発明の実施形態は、入力の任意の特定のタイプに限定されるものではない。ユーザの指の大きさ、例えば1-2センチの幅または高さに起因して、タッチスクリーンを介して受信された位置指示は、画面に表示されたアイテムに対して不正確であり得るサイズで1mmの端数。したがって、本発明のいくつかの実施形態でのユーザインターフェイスは、ユーザからの第1の位置指示に際し、選択された文字列に対しておおよその位置にカーソルを置くことになる。次に、ユーザが、より正確にカーソルを置くことを望む場合、第2の指示がデバイスに入力されてもよく、入力に関連付けられたより正確な位置に、カーソルが配置される。カーソルのこのおおまかな、または、ざっくりした配置は、任意の方法で実施されてよく、本発明の実施形態は、この点に限定されるものではない。コンピューティングデバイスが、おおまかな位置を使用してカーソルを配置した場合、コンピューティングデバイスは、第1の状態にあると言ってよい。コンピューティングデバイスが、より正確な位置を使用してカーソルを配置した場合、コンピューティングデバイスは、第2の状態にあると言ってよい。いくつかの実施形態では、デバイスが、正確な配置、または、おおまかな配置のどちらを使用するかは、表示されるオブジェクトの特性に依存することになる。例えば、表示が、所定の閾値よりも大きいテキストを含む場合、そのデバイスは、カーソルの正確な配置を実施するだけでよい。いくつかの実施形態では、所定のテキストサイズ閾値は、ユーザの指のおおよその大きさに関連し得る。このように、ユーザの指の大きさが、画面上に表示されるアイテムとほぼ同じサイズである場合には、デバイスは、おおまかな配置を使用しなくてもよい。カーソル420のおおまかな配置は、任意の適切な方法で実施されてよい。いくつかの実施形態では、入力は、表示画面上の特定の文字列を指示するユーザから受信される。コンピューティングデバイス200は、その単語に関連付けられた位置にカーソルを配置するコマンドである入力を決定する。カーソルを配置することが可能な位置の数は、正確な配置が使用されている場合に比べて低減されてもよい。より少ない可能な位置が、おおまかなカーソル配置をもたらすのに対し、細かなカーソル配置は、多数の可能な位置を有する。例えば、おおまかなカーソルの配置は、図4Aに示す文字列300の先頭、または、図4Bに示す文字列の末尾にカーソルを配置することだけを可能にしてもよい。カーソルが文字列の先頭または末尾のどちらに配置されているかを決定することは、任意の適切な方法で決定されてよい。例えば、単語は、前半と後半のような複数文字の部分に分割されてもよい。ユーザ入力の位置が、前半を指示する場合、カーソルは、文字列の先頭に表示される。一方、ユーザの入力が、後半を指示する場合、カーソルは、文字列の末尾に表示される。おおまかな配置のこのタイプは、ユーザ入力が単語の先頭または末尾の位置を指示していない場合であっても、ユーザが、どこか途中ではなく、単語の先頭または末尾にカーソルを配置したいことがあるという事実を説明している。このように、おおまかな配置は、ユーザにとって単語の先頭または末尾を指定するのを容易にするが、より正確なカーソル配置モードに切り替えるための簡単な方法を提供する。文字列の先頭および末尾が、おおまかなカーソル配置のための唯一の選択肢である上記の例では、コンピューティングデバイス200は、任意の適切な方法で先頭または末尾にカーソルを配置するかどうかを決定してよい。いくつかの実施形態では、図3Aおよび図3Bに示すように、文字列300は、2つの部分に分割される。ユーザの入力が文字列の先頭部分を指示している場合には、カーソル420は、文字列の先頭、すなわち文字列300の先頭の文字310の前に配置される。ユーザの入力が、文字列の末尾部分を指示している場合には、カーソル420は、文字列の末尾、すなわち文字列の末尾文字320の後に配置される。文字列は、任意の適切な方法で、部分に分割されてもよい。例えば、図3Aは、各部分の文字が同数であるように、文字列Computerが半分に分割される様子を示す。第1の部分330は、Compを含み、第2の部分340は、uterを含む。あるいは、図3Bは、同じ文字列300が、各半分に同数の画素があるように半分に分割される様子を示す。第1の部分350は、Comおよび文字pの小部分を含み、第2の部分360は、文字pの残りの部分および文字uterを含む。部分のサイズは、文字列を分割する方法に応じて異なることに注意されたい。本発明の実施形態は、文字列を等しい部分に分割することに限定されない。例えば、ユーザインターフェイスの設計者が、ユーザが文字列の先頭よりも文字列の末尾にカーソルを配置することを望む可能性がより高いと信じている場合には、末尾部分が先頭部分よりも意図的に大きくてもよい。本発明の実施形態はセグメンテーションの特定の実施に限定されるものではない。さらに、本発明の実施形態は、文字列300を2つの部分に分割することに限定されるものではない。例えば、図3Cで文字列300は、3つの部分に分割され、先頭部分370は、文字列300の最初の3文字を含み、末尾部分380は、文字列300の最後の3文字を含み、先頭部分370および末尾部分380の間の中間部390は、文字列300の残りの文字を含む。当業者であれば、文字の任意の所定数が先頭および末尾部分を定義するために使用されてもよいことを理解するであろう。図3Cの図説は、一例として3文字を使用した。ユーザの入力が、文字列300の先頭部分370に対応する位置を指示している場合に、カーソル420は、図4Aに示すように文字列300の先頭文字310の前に配置される。ユーザの入力が、文字列300の末尾部分380に対応する位置を指示している場合に、カーソル420は、図4Bに示すように文字列300の末尾文字320の後に配置される。ユーザの入力が、文字列300の中間部390に対応する位置を指示している場合に、カーソルは、任意の適切な方法で配置されてよい。いくつかの実施形態では、カーソルは、中間部390の先頭に配置されてもよい。他の実施形態では、コンピューティングデバイスは、中間部390の末尾にカーソルを配置する。いくつかの実施形態では、中間部の中央にカーソルを配置してもよい。さらに別の実施形態では、ユーザの入力が中間部390に対応する際に、コンピューティングデバイス200は、ユーザの入力により指示される位置に対応する位置に配置されるように正確な配置を使用して、カーソルを配置してもよい。例えば、図3Cでは、ユーザが文字列のpおよびuとの間の位置を指示している場合、図4Cに示すように、カーソルは、その位置に配置される。他方では、ユーザがpの先頭近傍の場所を指示している場合、カーソルは、pの前に配置される。本発明の実施形態は、カーソル配置の特定の実施に限定されるものではない。一旦、コンピューティングデバイス200が、おおまかにカーソル420を配置すると、ユーザは、同じ文字列300内の、より正確な位置にカーソル420を配置したい場合がある。カーソルを配置することができる場所の数は、おおまかな配置を使用する時に利用可能な位置の数よりも大きい。カーソル420の正確な配置、または、細かな配置は、任意の適切な方法で実装されてもよい。例えば、ユーザが同じ文字列300内の第2の位置を指示している場合、コンピューティングデバイス200は、複数の可能な配置位置から第2の位置に対応する位置を選択する。コンピューティングデバイス200が正確なカーソル配置を行う際には、おおまかなカーソル配置中に利用可能であった可能な配置位置の数よりも、より多数の可能な配置位置が存在する。いくつかの実施形態では、複数の可能な配置位置は、文字列300の各文字に隣接する各位置を含んでいてもよい。例えば、ユーザの第1の入力は、第1の位置に対応してよく、カーソルは、文字列300の先頭におおまかに配置されてもよい図4参照。文字pおよびuとの間の第2の位置に対応する第2の入力が受信された場合、コンピューティングデバイスは、図4Cに示すようにpおよびuとの間にカーソル420を配置する。いくつかの実施形態では、おおまかなカーソル配置用の第1の入力、および、正確なカーソル配置用の第2の入力は、両方共にタップ入力であってよい。これによりユーザは、ドラッグ入力、または、プレスアンドホールド入力などのような入力に頼ることなく、非常に迅速かつ正確に所望の位置にカーソルを素早く配置することができる。タップ入力は、携帯機器に特に有利である。本発明の実施形態は、ユーザが使用する入力のタイプに限定されるものではない。いくつかの実施形態では、表示画面250がカーソル420を表示する際に、グリッパ410も表示される。グリッパは、画面上のグラフィカル表示であり、ユーザはインタラクトし、コンピューティングデバイス200へさらなる入力情報を伝えることができる。グリッパは、任意の適切な方法で実装されてもよい。例えば、図4A-図4Cに示すように、グリッパ410は、カーソル420の下方に表示されてもよい。本発明の実施形態は、グリッパの任意の特定のサイズに限定されるものではない。例えば、グリッパは、サイズが5mmから15mmの範囲であってよい。いくつかの実施形態では、グリッパは、8mm幅である。グリッパは、ある寸法が別の寸法より大きくされてもよい。例えば、グリッパは、10mmの高さ、および、6mmの幅を有する楕円形であってもよい。グリッパの正確なサイズは重要ではなく、任意のサイズが使用されてよい。いくつかの実施形態では、グリッパのサイズは、画面サイズおよび解像度とは無関係である。例えば、携帯電話機の画面に表示されるグリッパは、コンピュータに関連する大きなタッチスクリーンディスプレイ画面上に表示されるグリッパと同じ幅を有してよい。結果として、レンダリングされる際に、グリッパをレンダリングするためにコンピューティングデバイス200により使用されるパラメータは、選択されたサイズに従うように選択されてもよい。これらのパラメータは画面の高さ、画面の幅、ピクセルサイズ、および/または、画面の解像度を含んでいてもよい。図8A-8Eは、グリッパの例示的な実施形態を示す。以下でより詳細に説明するように、ユーザによりテキストが選択される際に、それは強調表示されてよく、2つのグリッパが表示されてよい。つまり、選択されたテキストの先頭に1つのグリッパが、かつ、選択されたテキストの末尾に1つのグリッパが表示される。図8Aは、第1のグリッパ810および第2のグリッパ820が、同一の円である実施形態を示す。円の内部は、ソリッドカラー、完全に透明、または、ソリッドカラーと完全に透明との間の任意の透明度、であってよい。図8Bは、グリッパ820および822の例を示しており、内部にグラフィックを伴う円である。任意の適切なグラフィックが使用されてもよい。図示の例では、グリッパがインタラクティブであり、コマンドを入力するために使用されてもよいことを、ユーザが理解するように、テクスチャを指示するために縦の行が使用される。図8Cは、末尾グリッパ832の鏡像である先頭グリッパ830を示す。2つのグリッパは外側を向いた三角形である。円形のグリッパと同じように、三角形の内部は完全に不透明、完全に透明、または、その間のどこであってもよい。図8Dも、また、三角形のグリッパ840と842を示しているが、どこが選択されたテキストの先頭および末尾であるかをより正確に指示するための縦線が追加される。図8Eは、非標準的な形状であるグリッパ850および852を示す。これらは、完全に丸い形状よりも選択されたテキストの先頭および末尾をより正確に指示することができる頂点近傍のポイントを有し、下方で丸められている。上記のグリッパは、例示的な目的のものであり、本発明の実施形態は、任意の特定の形状に限定されない。例えば、任意の画像またはアイコンが、グリッパイメージ用にユーザにより選択されてもよい。このように、グリッパは、ユーザの好みの経験に合わせてパーソナライズされてもよい。いくつかの実施形態では、グリッパは、選択された文字に関連付けられているテキストの行の下方に常に表示される。テキストが選択されず、代わりにカーソルが表示されている場合に、グリッパは、カーソルの下方に表示されてもよい。さらに、当業者であれば、本明細書に請求された発明の実施形態により使用することができ、かつ、カバーされる、図示されていないグリッパ形状および配置の他の多くの変形があることを理解するであろう。例えば、縦書き言語が表示されている場合、グリッパは、テキストの左側に表示されてもよい。上述したように、コンピューティングデバイス110は、タッチスクリーンセンサ172以外の様々なデバイスからの入力を受信してもよい。いくつかの実施形態では、カーソル420がこれらの他のデバイスを使用して配置されている場合、タッチスクリーンエンジンは、表示画面191上にグリッパ410を表示しなくてもよい。例えば、キーボード162またはボタン230の矢印キーがカーソルを移動するために使用される場合、グリッパは、表示されなくてもよい。テキストを選択するためのグリッパ使用が、図5A-5Cと併せて以下で説明される。図5Aは、図4Bで示されるのと同じカーソル420の位置を示す。カーソル420は、文字列300の末尾文字320の後に任意の適切な方法で、例えば、おおまかなカーソル配置により配置されてよい。コンピューティングデバイス200は、ユーザが指でグリッパを選択する際に、カーソル420およびグリッパ410に関連付けられたテキストが、グリッパまたはユーザの指により遮られないように、グリッパ410をカーソル420の下方に表示する。ユーザは、ドラッグ入力draginputを実施するためにグリッパをプレスしドラッグしてもよい。いくつかの実施形態では、タッチスクリーンエンジンが、ユーザからドラッグ入力を受信したが、ドラッグ入力の初期位置がグリッパに対応しない際に、テキストが、スクロールまたはパンして、追加のテキストを表示する。それが利用可能な場合である。図5Bは、ユーザの指が、テキストの行に沿った方向に表示画面250を横切ってトレースしてよいパス525を示す。この例では、パス525はグリッパ410に対応する位置で始まり、テキストの行の方向に沿って左に進み、ユーザが画面250から指を離した時に×で示す位置で最終的に終端する。テキストを視覚的に遮らないように、グリッパ410が十分テキストの下方にあるので、パスは、テキストが選択されている間、ユーザが依然としてテキストでの視界の視線を維持することができるように文字列の下方にある。いくつかの実施形態では、文字列の文字は、選択を指示するパス525がユーザから受信されると強調表示される。例えば、ユーザの指が文字rの下方のパスをトレースすると、強調表示された部分は文字を包含するように伸びる。強調表示は、選択された文字の背景の陰影520であってもよく、文字が選択されていることをユーザに指示してもよい。ユーザの指が継続すると、パス525により横切られる他の文字は、ユーザが表示画面250から指を持ち上げることによりドラッグ入力を完了するまで強調表示された部分の一部となる。ドラッグ入力の終了位置は、文字530に対応し、文字530および元のカーソル位置に対応する文字320間のテキストが選択される。上述したように、パスは、文字列の下方にあるので、ユーザは選択された文字での視界の視線を維持できる。いくつかの実施形態では、タッチスクリーンエンジンは、ドラッグ入力がユーザにより入力さている間は、グリッパ410および/またはカーソル420を表示しない。これにより、ユーザの気をそらす、または、混乱させるかもしれない不必要なグラフィックを排除し、ユーザは、強調表示されている文字に簡単に集中することができる。図5Cは、ドラッグ入力が完了した後の選択されたテキストを示す。タッチスクリーンエンジンは、カーソル420の元の位置に対応する文字320およびパス525が終了した場所に対応する文字530との間のテキストを強調表示するために表示画面191に命令する。グリッパ410は、ドラッグ入力が受信される前と同じ位置に表示されてもよい。タッチスクリーンエンジンは、文字列300の選択された文字の先頭に新しいグリッパ510を表示する。選択されたテキストは、グリッパ510、または、グリッパ410のいずれかにより、同じようなインタラクションによって、さらに変更されてもよい。ユーザは、グリッパの1つに対応する開始位置で、さらにドラッグ入力を提供することにより、より多くの、または、より少ない文字を選択してもよい。いくつかの実施形態では、タッチスクリーンセンサ172は、図5Cに示すグリッパ410に対応するユーザからのドラッグ入力を受信してもよい。ドラッグ入力は、グリッパ510の反対側で終了してもよい。例えば、ドラッグ入力が文字列300の文字Cで終了した場合、次にドラッグ入力を解除すると、タッチスクリーンエンジンは、文字Comp、すなわちドラッグ入力が開始された時のグリッパ510の位置およびドラッグ入力の終了ポイントに対応した位置との間のテキスト、を選択する。いくつかの実施形態では、タッチスクリーンエンジンは、2つのグリッパが重ならないようにグリッパの形状および/または位置を変更する。図6Aは、グリッパが重なることを許可されている場合に存在する問題を示す。このような状況は、選択されたテキストの幅がグリッパの幅の2倍よりも小さくなるような結果をもたらすような文字数が少ない場合に発生することがある。これは、ハンドヘルドデバイスなどの画面サイズが小さく、画面サイズおよび解像度に関係なくグリッパが固定されたサイズに設定されている場合にも発生することがある。グリッパ610は、文字列600の選択された文字の先頭に関連付けられ、グリッパ620は、選択された文字の末尾に関連付けられる。上述したように、選択された文字は、強調表示される630。グリッパ610およびグリッパ620との間の重なりは、ユーザに対して特定のグリッパを選択することを困難にする。重なりは、ユーザを視覚的に混乱させるかもしれない。図6Bは、グリッパを同じサイズに保持するが、グリッパを選択されたテキストの両端から離れて移動した結果を示す。グリッパ610およびグリッパ620の両方は、例えば図5Cにおいて、より多くの文字が選択された場合よりも強調表示されたテキストから、さらに離れて表示される。これにより、重なりあうグリッパを防止し、ユーザを混乱させずに、ユーザが簡単に各グリッパと個別にインタラクトすることができる。一旦、ユーザがテキストを選択し、タッチスクリーンエンジンが選択されたテキストを強調表示すると、図5Cに示すように、ユーザは、テキストの選択部分に基づいて実行する機能を選択してよい。上述のように、機能の例としては、テキストの上書き、テキストの再フォーマット、テキストの削除、または、テキストのコピー、などであってもよい。選択されたテキストに基づいて実行され得る別の機能には、コンテキストメニュー550の表示がある。コンテキストメニュー550は、例えば、強調表示されたテキストに対応する入力、または、図5Dに示す2つのグリッパ410および510の1つを提供することにより表示されてもよい。入力は、例えば、タップ入力の形態であってもよい。コンテキストメニュー550は、ユーザに選択されたテキストに対して実行され得る様々な追加機能を提供する。機能オプションは、OS134またはアプリケーションプログラム135からタッチスクリーンエンジンに提供されてもよい。例えば、ウェブブラウザアプリケーションが画面上の表示用にタッチスクリーンエンジンにテキスト情報を提供している場合、コンテキストメニューのための情報を提供するのはウェブブラウザであってもよい。コンテキストメニュー550により提供される様々な追加機能は、例えば、選択された文字を切り取り、または、コピーするためのオプションであってもよい。機能は、選択されたテキストを再フォーマットするためのオプションを含むこともできる。コンテキストメニュー550は、また、以前にコピーされた文字を貼り付けし、選択されたテキストを上書きするオプションを提供してもよい。コンテキストメニューは、本明細書に記載されていない多くの他のオプションを提供してもよいが、当業者であれば、本明細書に記載の本発明の実施形態に含まれることを理解するであろう。さらに、コンテキストメニューは、任意の形状またはサイズであってもよい。例えば、コンテキストメニューは、図5Dに示すように、機能が縦方向のリストに表示される長方形のメニューであってもよい。いくつかの実施形態では、コンテキストメニューは、円形または楕円形であって、径方向放射状に機能を表示するものであってもよい。本発明の実施形態は、コンテキストメニューの任意の特定のサイズまたは形状に限定されず、また、それらが上述した特定の機能のいずれかを提供することに限定されるものではない。同様に、図5Aに示すように、テキストが選択されておらず単一のグリッパが表示される場合であっても、グリッパ410のタップ入力は、コンテキストメニューの表示を結果としてもたらしてよい。テキストが選択されていないので、コンテキストメニューは、切り取り、または、コピーするオプションを表示しなくてもよいが、貼り付け機能、または、任意の他の適切な機能を提供してもよい。文字選択の上述の議論は、1行のテキストに限定されていた。しかしながら、複数の行を占有するテキストブロックから文字のサブセットを選択することも本発明のいくつかの実施形態の一態様である。具体的には、ユーザがテキストの行とは別の行のテキストをいつ選択しようとするかを決定する能力は、ユーザからのドラッグ入力の開始に関連していた。ユーザの指からの入力は不正確であり、真っ直ぐではなくユーザの意図したパスから外れたタッチスクリーン上のパスをヒトはトレースする傾向がある。このように、本発明のいくつかの実施形態は、テキストの各行に関連するセーフティゾーンを提供する。セーフティゾーンは、テキストの行を囲む領域であり、ユーザからのドラッグ入力に関連付けられたパスがセーフティゾーン内に留まる限り、コンピューティングデバイス200は、ユーザがテキストの同じ行に留まる選択をするように意図していたと決定する。セーフティゾーンは、また、ユーザにより開始された選択がカーソルが最初に関連付けされた行で始まることを確認する。いくつかの実施形態では、セーフティゾーンの境界を定義するテキストの行から離れた閾値距離は、ユーザのアクションに基づいて変更されてもよい。本発明のいくつかの実施形態の例として、図7Aは、一番上の行710、中央の行720、および、一番下の行730を占めるテキスト700を示す。各行は1つの方向、例えば、水平に延びており、一方で、各行は、第2の方向、例えば、垂直に次の行に隣接している。カーソル712は、第1の行710の単語quickの先頭に位置している。カーソルは、上述の任意のカーソル配置技術を使用して、その特定の位置に配置されていてもよい。タッチスクリーンエンジンは、グリッパ714をカーソル712の下方に表示する。ユーザは、グリッパ714で始まるドラッグ入力を入力し、第2の行720に関連付けられた位置で終端するパス716をたどってもよい。セーフティゾーン境界740は、図7Aに破線で示されているが、破線は表示画面上に表示されなくてもよい。境界740は、それが関連付けられているテキストの第1の行710から一定の距離である。距離は、任意の数のパラメータの関数であってもよい。例えば、距離は、テキストから離れたいくらかの所定の長さ、または、テキストから離れた所定数の画素であってもよい。いくつかの実施形態では、距離は、動的であってもよい。距離は、縦の行の高さ、テキストの行間のスペースのサイズ、画面サイズ、または、画面の解像度の関数であってもよい。図7Aに示す例では、境界740は、テキストの第2の行720が占める縦のレベルにある。ドラッグ入力のパス716が、境界740を通過しない場合、コンピューティングデバイスは、ユーザが第2の行720内のテキストを選択することを意図していなかったと判断する。例えば、図7Aに示されるパス716は、境界740の直上、および、テキストの第1の行710の文字oおよびwとの間の位置に対応した水平位置で終端する。したがって、コンピューティングデバイスは、ユーザは、第1の行710のテキストquickbroを選択したかったのだと判断する。図7Bは、図7Aのパス716に対応する上記ドラッグ入力を受信した後に何が表示されるかを示す。タッチスクリーンエンジンは、テキストquickbroを強調表示し722、強調表示されたテキストの先頭に第1のグリッパ714があり、強調表示されたテキストの末尾に第2のグリッパ724がある。ユーザは、グリッパ724に対応する開始ポイントで第2のドラッグ入力を入力し、パス726をたどり、テキストの第2の行720のoおよびvとの間、かつ、境界740の下方で終端してよい。ドラッグ入力が境界740の下方で終端したので、コンピューティングデバイス200は、ユーザが第2の行720内のテキストを選択することを意図していたと判断する。したがって、図7Cは、第1の行の第1のグリッパ714に関連付けられた位置の後のすべての文字が選択され、第2の行の先頭からパス726の終端に関連付けられた場所までのすべての文字が強調表示される722ことを示す。図7Cは、また、第1の行710のセーフティゾーンに関連付けられた閾値距離の変化を示す。ユーザがドラッグ入力を入力している間、パス726が第1の行710のセーフティゾーンに関連付けられ境界740を横切る場合、境界の位置は、境界741により示されるように、第1の行のテキストに近くなるようにシフトする。テキスト選択中に、ユーザにパスの場所における余裕を与えることにより、ユーザにとって単一行でテキストを選択することがより簡単になり、ユーザはテキストのブロック内の隣接する行を含めるように選択されたテキストを拡げたいことをユーザの入力で示すことができる。より遠くにある境界740を用いることは第1の動作モードと関連する。境界740に関連付けられた閾値距離を通り過ぎることにより、別の行上のテキストを選択するユーザの意図が、一旦、明らかになると、コンピューティングデバイスは、元の閾値距離よりもより小さいある値の閾値距離に減少させることにより、より容易に選択されたテキストの終了ポイントを変更させる。この減少された距離の境界は第2の動作モードに関連する。初期境界740が横切られた後、ドラッグ入力が、まだユーザにより入力されている間、第2のモードが実行される。コンピューティングデバイス200が第2のモードで動作する際、各行は、コンピューティングデバイス200が第1のモードで動作する際よりもテキストの行からより短い距離離れたセーフティゾーン境界を有する。例えば、セーフティゾーン境界は、境界741と同じ減少された距離閾値を有することができる。図7Cは、テキストの第2の行720のセーフティゾーンに関連付けられている下方の境界742を示す。ユーザは、コンピューティングデバイス200のタッチスクリーンを使用して第3のドラッグ入力を入力してもよい。図7Cは、選択されたテキストの先頭に関連付けられたグリッパ714で始まる、このドラッグ入力に関連付けられたパス736を示す。上述したように、第1のモードでは、行を変更するための閾値距離はテキスト行から比較的遠く離れており、境界740により示される。一旦、パス736が境界740を横切ると、コンピューティングデバイスは第2のモードに入り、閾値は減少し、境界741により表される。テキストの第2の行720に関連付けられた第2のモードのセーフティゾーン境界は、境界742により表される。パス736は、第3の行730の文字lおよび文字aとの間のスペースに関連付けられた位置で終端する。図7Dに示すように、選択されたテキストの先頭と最初に関連付けられていたグリッパ714は、第3のドラッグ入力後、選択されたテキストの末尾に関連付けられる。同様に、選択されたテキストの末尾に最初に関連付けられていたグリッパ724は、第3のドラッグ入力後、選択されたテキストの先頭に関連付けられる。いくつかの実施形態では、ドラッグ入力がユーザから受信されると、強調表示722は、各ドラッグ入力に関連付けられたパスに沿って、現在の位置に基づいて更新される。いくつかの実施形態では、ドラッグ入力が受信されている間グリッパ714および724が表示されなくてもよい。上述のセーフティゾーンは、テキストの行が配向している方向には適用されない。例えば、上述の説明では、セーフティゾーンは、テキストの行に対して直交する方向、例えば、垂直方向に適用される。テキストの行の方向、例えば、水平方向に沿ったテキストの強調表示された部分の終点の決定は、図5A-5Cに関連して説明したのと同じ方法で行われてもよい。この水平方向に沿って、テキストの強調表示された部分は、ユーザのドラッグ入力が文字を通過する時に一度に1つの文字が更新されてもよい。本発明の少なくとも1つの実施形態のいくつかの態様をこのように説明してきたが、様々な変更、修正、および、改良が当業者には容易に思い浮かぶであろうことを理解されたい。このような変更、修正、および、改良は本開示の一部であることが意図され、および、本発明の趣旨および範囲内にあることが意図される。さらに、本発明の優位性が示されるものの、本発明のすべての実施形態が必ずしも上述のすべての優位性を含んでいる訳ではないことが理解されるべきである。いくつかの実施形態は、本明細書およびいくつかの例で優位性として説明した任意の機能を実装していなくてもよい。よって、前述の説明および図面はほんの一例である。本発明の上述の実施形態は、任意の多数の方法で実施することができる。例えば、実施形態は、ハードウェア、ソフトウェア、または、それらの組み合わせを用いて実装されてもよい。ソフトウェアで実装する際、ソフトウェアコードは、単一のコンピュータに提供されるか、または、複数のコンピュータ間で分散されるかに関わらず、任意の適切なプロセッサ、または、プロセッサの集合で実行され得る。そのようなプロセッサは、集積回路部品内の1つまたは複数のプロセッサで集積回路として実装されてもよい。また、プロセッサは、任意の適切なフォーマットの回路を用いて実装されてもよい。本明細書で概説する様々な方法またはプロセスは、オペレーティングシステムまたはプラットフォームの任意の種々のものを採用する1つまたは複数のプロセッサ上で実行可能なソフトウェアとしてコーディングされてもよい。加えて、このようなソフトウェアは、任意のいくつもの適切なプログラミング言語および/またはプログラミングまたはスクリプティングツールを使用して書かれてもよいし、また、フレームワークまたは仮想マシン上で実行される実行可能な機械語コードまたは中間コードとしてコンパイルされてもよい。用語プログラムまたはソフトウェアは、上述したように、本発明の様々な態様を実施するためのコンピュータまたは他のプロセッサをプログラムするために使用することができる任意のタイプのコンピュータコードまたはコンピュータ実行可能命令のセットを指すために、一般的な意味で本明細書で使用されている。加えて、この実施形態の一態様によれば、実行される際に本発明の方法を実行する1つまたは複数のコンピュータプログラムは、単一のコンピュータまたはプロセッサ上に常駐する必要はなく、本発明の様々な態様を実施するためにいくつもの異なるコンピュータまたはプロセッサ間のモジュール方式で分散されてもよいことが理解されるべきである。コンピュータ実行可能命令は、1つまたは複数のコンピュータまたは他のデバイスにより実行されるプログラムモジュールなどのような多くの形態であってもよい。一般に、プログラムモジュールは、特定のタスクを実行するか、または、特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、などを含む。通常、プログラムモジュールの機能は、様々な実施形態で、所望により組み合わせるかまたは分散させてもよい。また、データ構造は、任意の適切な形態のコンピュータ可読媒体に保管されてもよい。説明を簡単にするために、データ構造は、データ構造内の位置を介して関連するフィールドを有することが示されてもよい。このような関係は、フィールド間の関係を伝達するコンピュータ可読媒体内の位置でフィールド用のストレージを割り当てることにより同様に達成されてもよい。しかしながら、ポインタ、タグ、または、データ要素間の関係を確立する他の機構の使用を含め、任意の適切な機構がデータ構造のフィールド内の情報間の関係を確立するために使用されてもよい。本発明の様々な態様は、単独で、組み合わせて、または、上記に記載された実施形態で具体的に説明していない様々な配置で、使用されてもよく、それ故に、上記の説明に記載された、または、図面に示されたコンポーネントの詳細および配置へのその適用に限定されない。例えば、一実施形態において説明した態様は、他の実施形態で説明した態様と任意の方法で組み合わされてもよい。また、本発明は、例示が提供されている方法として具体化されてもよい。方法の一部として実行される動作は、任意の適切な方法で順序付けされてもよい。よって、実施形態は、たとえ例証的な実施形態においてシーケンシャル動作として示されていても、いくつかの動作を同時に実行することを含んでいてもよく、図示とは異なる順序で動作が実行されるものとして構成されてもよい。例えば、上記に開示された一実施形態は、テキストの文字列内でカーソルのおおまかなおよび正確な配置をするように指示される。別の実施形態は、グリッパを使用してテキスト文字列を選択するように指示される。これらの実施形態は、グリッパ用のテキストの選択を行いながら、ざっくりとした配置および正確な配置が使用されるように組み合わせられてもよい。例えば、ユーザからのドラッグ入力の終了位置は、最初におおまかな配置を使用して決定されてもよい。次に、ユーザからのさらなる入力で、グリッパは、より正確に配置されてもよい。ユーザからの任意の適切な入力が受信されてもよい。例えば、ユーザは、テキストの選択された文字列内でタップ入力を提供してもよく、または、グリッパを正確に配置するためにグリッパに関連付けられた追加のドラッグ入力を提供してもよい。第1の、第2の、第3のなどの序数用語の使用は、請求項の要素を変更するための特許請求の範囲において、それ自身により任意の優先度、優先順位、または、もう1つ別の請求項の要素への順序または方法の動作が実行される時間的順序を暗示しておらず、特定の名称を有する1つの請求項の要素を、請求項の要素を区別するために同じ名称を有する別の要素から序数用語の使用のために区別するためのラベルとしてのみ使用される。また、本明細書で使用する表現および用語は、説明の目的のためであり、限定とみなされるべきではない。含む、備える、有する、包含する、伴う、および、本明細書でのその変形の使用は、その後に列挙される項目およびその等価物並びに追加の項目を包含することを意味する。