キーボードインタフェース機能を提供するための多くの異なる取組みについて本明細書で説明する。これらの取組みのうちの1つ以上を(任意選択的に互いと併せて)使用することによって、ユーザからの入力の数、範囲、及び/又は性質が低減し、より多くの効率的なヒューマン−マシンインタフェースが提供される。これは、ユーザが、より高速かつより効率的に、タッチ感知面を有するデバイスとのキーボードインタフェースを使用することを可能にする。バッテリ動作デバイスに関しては、これらの改善により、電力が節約され、バッテリを充電する間隔が増大する。説明を簡単にするために、これらの方法のうちのいくつかの例示的な例を含む、デバイス及び方法が以下で説明されている。
図1Aは、タッチ感知ディスプレイを備えるポータブル多機能デバイスを示すブロック図を示す。詳細なメモリモジュール、デバイスモジュール、チップモジュール及びI/Oモジュールブロックの双方向作用が示されている。
図1Bは、イベント処理のための例示的な構成要素を示すブロック図を示す。
図2は、いくつかの実施形態に係る、タッチスクリーンを有するポータブル多機能デバイスを示す。
図3は、タッチ感知ディスプレイを備える例示的な多機能デバイスを示すブロック図である。
図4は、ポータブル多機能デバイス上のアプリケーションのメニューのための例示的なユーザインタフェースを示す。
図5A〜図5Fは、複数のキーボード間でトグルするための例示的なユーザインタフェースを示す。図6A〜図6Bは、複数のキーボード間でトグルする方法を示すフローチャートである。図5A〜図5Fのユーザインタフェースを使用して、図6A〜図6Bのプロセスを示す。
図8A〜図8Iは、仮想キーボードに追加のキーボードオプションを提供するための例示的なユーザインタフェースを示す図である。図9A〜図9Bは、仮想キーボードに追加のキーボードオプションを提供するための方法を示すフローチャートである。図9A〜図9Bのプロセスを示すために、図8A〜図8Iのユーザインタフェースを使用する。
図11A〜図11Eは、仮想キーボードモードを選択するための例示的なユーザインタフェースを示す。図12は、仮想キーボードモードを選択する方法を示すフローチャートである。図12のプロセスを説明するために、図11A〜図11Eのユーザインタフェースを使用する。
図14A〜図14Fは、コンパクトな仮想キーボードを選択するための例示的なユーザインタフェースを示す。図15は、コンパクトな仮想キーボードを選択する方法を示すフローチャートである。図15のプロセスを説明するために、図14A〜図14Fのユーザインタフェースを使用する。
例示的なデバイス
ここで、添付図面に実施例が示される実施形態を、詳細に参照する。以下の詳細な説明では、説明されている様々な実施形態の完全な理解を提供するために数多くの具体的な詳細が記載されている。しかしながら、説明されている様々な実施形態は、これらの具体的な詳細を伴わずとも実践し得ることが、当業者には明らかであろう。他の例においては、周知の方法、手続き、構成要素、回路、及びネットワークは、実施形態の態様を不必要に不明瞭なものとしないよう、詳細には説明されていない。
本明細書では、第1、第2などの用語は、一部の実施例で、様々な要素を説明するために使用されるが、これらの要素は、それらの用語によって限定されるべきではないことも理解されるであろう。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明されている様々な実施形態の範囲から逸脱することなく、第1の接触は、第2の接触と称することができ、同様に、第2の接触は、第1の接触と称し得る。文脈がそうではないことを明確に示さない限り、第1の接触及び第2の接触は両方接触であるが、それらは同じ接触ではない。
本明細書で説明される様々な実施形態の説明で使用される用語法は、特定の実施形態を説明することのみを目的とするものであって、限定することを意図するものではない。説明される様々な実施形態の説明及び添付の特許請求の範囲で使用される時、単数形「a」、「an」、及び「the」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことが意図される。本明細書で使用される時に、用語「及び/又は」が、関連する列挙された項目のうちの1つ以上の全ての可能な任意の組み合わせを指し、かつこれを含むことをもまた理解されたい。更に、用語「includes(含む)」、「including(含む)」、「comprises(備える)」、及び/又は「comprising(備える)」は、本明細書で使用される場合、記述される特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらの群の存在若しくは追加を排除するものではないことが理解されるであろう。
本明細書で使用される時、用語「if(〜の場合には)」は、任意選択的に、文脈に応じて「when(〜の時)」、「upon(〜すると)」、「in response to determining(〜という判定に応じて)」、又は「in response to detecting(〜の検出に応じて)」を意味するものと解釈される。同様に、語句「if it is determined(〜と判定される場合には)」又は「if (a stated condition or event) is detected((記述される条件又はイベント)が検出される場合には)」は、任意選択的に、文脈に応じて「upon determining(〜と判定されると)」、又は「in response to determining(〜との判定に応じて)」、又は「upon detecting(the stated condition or event)((記述される条件又はイベント)が検出されると)」、又は「in response to detecting(the stated condition or event)((記述される条件又はイベント)の検出に応じて)」を意味するものと解釈される。
電子デバイス、そのようなデバイス用のユーザインタフェース、及びそのようなデバイスを使用するための関連プロセスの、実施形態を説明する。いくつかの実施形態では、このデバイスは、PDA機能及び/又は音楽プレーヤ機能などの、他の機能も含む、モバイル電話機などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態は、限定を伴わずに、California州CupertinoのApple Inc.のiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスを含む。タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を備えたラップトップ又はタブレットコンピュータなど他のポータブル電子デバイスも、任意選択的に使用できる。また、いくつかの実施形態では、このデバイスはポータブル通信デバイスではなく、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を備えたデスクトップコンピュータであることを理解されたい。
以下の論考では、ディスプレイ及びタッチ感知面を備える電子デバイスを説明する。しかし、この電子デバイスが、物理キーボード、マウス、及び/又はジョイスティックなどの1つ以上の他の物理ユーザインタフェースデバイスを任意選択的に含むことを理解されたい。
そのデバイスは、一般的に、ノートテイキングアプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーション、ウェブサイト作成アプリケーション、ディスクオーサリングアプリケーション、スプレッドシートアプリケーション、ゲームアプリケーション、電話アプリケーション、ビデオ会議アプリケーション、電子メールアプリケーション、インスタントメッセージングアプリケーション、フィットネスアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブブラウジングアプリケーション、デジタル音楽プレーヤアプリケーション、及び/又はデジタルビデオプレーヤアプリケーションのうちの1つ以上など、様々なアプリケーションをサポートする。
このデバイス上で実行される様々なアプリケーションは、タッチ感知面などの、少なくとも1つの共通の物理ユーザインタフェースデバイスを、任意選択的に使用する。タッチ感知面の1つ以上の機能並びにデバイス上に表示される対応する情報は、1つのアプリケーションから次のアプリケーションへ、及び/又は対応するアプリケーションの中で、任意選択的に、調整、及び/又は変更される。この方式で、そのデバイスの共通の(タッチ感知面などの)物理アーキテクチャは、ユーザにとって直観的かつ透過的なユーザインタフェースを有する様々なアプリケーションを、任意選択的にサポートする。
ここで、タッチ感知ディスプレイを備えるポータブルデバイスの実施形態に注意を向ける。図1Aは、いくつかの実施形態に係る、タッチ感知ディスプレイ112を備えたポータブル多機能デバイス100を示すブロック図である。タッチ感知ディスプレイ112は、時には便宜上「タッチスクリーン」と称され、時には単に「タッチ感知ディスプレイ」と称されることもある。デバイス100は、メモリ102(任意選択的に、1つ以上のコンピュータ可読記憶媒体を含む)、メモリコントローラ122、1つ以上の処理ユニット(CPU)120、周辺機器インタフェース118、RF回路108、オーディオ回路110、スピーカ111、マイクロホン113、入出力(I/O)サブシステム106、他の入力又は制御デバイス116、及び外部ポート124を含む。デバイス100は、1つ以上の光センサ164を、任意選択的に含む。デバイス100は、デバイス100(例えば、デバイス100のタッチ感知ディスプレイ112などのタッチ感知面)上での接触の強度を検出するための1つ以上の強度センサ165を、任意選択的に含む。デバイス100は、デバイス100上に触知出力を生成する(例えば、デバイス100のタッチ感知ディスプレイ112又はデバイス300のタッチパッド355などの、タッチ感知面上に触知出力を生成する)ための、1つ以上の触知出力生成器167を、任意選択的に含む。これらの構成要素は、1つ以上の通信バス又は信号ライン103を介して、任意選択的に通信する。
本明細書及び特許請求の範囲で使用される時、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、デバイスの別の構成要素(例えば、筐体)に対する物理的変位、又はデバイスの量心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況において、物理的変位によって生成された触知出力は、デバイス又はデバイスの構成要素の物理的特性の認識された変化に相当する触感として、ユーザによって解釈される。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として、任意選択的に解釈される。いくつかの場合、ユーザの移動により物理的に押された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がない時でさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じる。別の例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない時でさえ、タッチ感知面の「粗さ」としてユーザによって、任意選択的に解釈又は感じられる。このようなユーザによるタッチの解釈は、ユーザの個別の感覚認知によるが、大多数のユーザに共通したタッチの感覚認知が数多くある。したがって、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」「ダウンクリック」、「粗さ」)に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
デバイス100は、ポータブル多機能デバイスの一実施例に過ぎず、デバイス100は、示されるものよりも多いか又は少ない構成要素を任意選択的に有するか、2つ以上の構成要素を任意選択的に組み合わせるか、又は構成要素の異なる構成若しくは配置を任意選択的に有することを理解されたい。図1Aに示す様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせで実装することができる。
メモリ102は、任意選択的に高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性半導体メモリデバイスなどの、不揮発性メモリも含む。CPU(単数又は複数)120及び周辺機器インタフェース118などの、デバイス100の他の構成要素によるメモリ102へのアクセスは、メモリコントローラ122により、任意選択的に制御される。
周辺機器インタフェース118を使用して、このデバイスの入力及び出力周辺機器を、CPU(単数又は複数)120及びメモリ102に結合することができる。1つ以上のプロセッサ120は、デバイス100のための様々な機能を実行するため並びにデータ処理を行うために、メモリ102に記憶された様々なソフトウェアプログラム及び/若しくは命令セットを走らせたり、又は実行したりする。
いくつかの実施形態では、周辺機器インタフェース118、CPU(単数又は複数)120、及びメモリコントローラ122は、任意選択的に、チップ104などの単一チップ上に実装される。いくつかの他の実施形態において、これらは、個別のチップ上に、任意選択的に実装される。
RF(無線周波数)回路108は、電磁信号とも呼ばれるRF信号を送受信する。RF回路108は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路108は、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(SIM)カード、メモリなどを含むがこれらに限定されない、上記の機能を実行するための周知の回路を、任意選択的に含む。RF回路108は、インターネット情報検索システム(WWW)とも呼ばれるインターネットなどのネットワーク、セルラー電話ネットワークなどのイントラネット及び/又は無線ネットワーク、ワイアレスローカルエリアネットワーク(LAN)及び/又はメトロポリタンエリアネットワーク(MAN)、及び他のデバイスと無線通信によって、任意選択的に通信する。無線通信は、移動通信用グローバルシステム(GSM(登録商標))、エンハンストデータGSM環境(EDGE(登録商標))、高速ダウンリンクパケットアクセス(HSDPA)、高速アップリンクパケットアクセス(HSUPA)、Evolution,Data−Only(EV−DO)、HSPA、HSPA+、2重セルHSPA(DC−HSPDA)、ロングタームエボリューション(LTE(登録商標))、近距離無線通信(NFC)、広帯域符号分割多元接続(W−CDMA)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、Bluetooth、Wireless Fidelity(Wi−Fi(登録商標))(例えば、IEEE 802.11a、IEEE 802.11ac、IEEE 802.11ax、IEEE 802.11b、IEEE 802.11g及び/又はIEEE 802.11n)、ボイスオーバーインターネットプロトコル(VoIP)、Wi−MAX(登録商標)、電子メール用のプロトコル(例えば、インターネットメッセージアクセスプロトコル(IMAP)及び/又はポストオフィスプロトコル(POP))、インスタントメッセージング(例えば、extensible messaging and presence protocol(XMPP)、Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions(SIMPLE)、Instant Messaging and Presence Service(IMPS))、及び/又はショートメッセージサービス(SMS)、若しくは本願の出願日の時点でまだ開発されていない通信プロトコルを含む任意の他の好適な通信プロトコルを含むがこれらに限定されない複数の通信規格、プロトコル、及び技術のうちのいずれかを、任意選択的に使用する。
オーディオ回路110、スピーカ111及びマイクロホン113は、ユーザとデバイス100との間のオーディオインタフェースを提供する。オーディオ回路110は、周辺機器インタフェース118からオーディオデータを受信し、オーディオデータを電気信号に変換し、電気信号をスピーカ111に送信する。スピーカ111は、電気信号を人間の可聴音波に変換する。オーディオ回路110は、マイクロホン113により音波から変換された電気信号も受信する。オーディオ回路110は、電気信号をオーディオデータに変換し、処理するためにオーディオデータを周辺機器インタフェース118に送信する。オーディオデータは、周辺機器インタフェース118によって任意選択的に、メモリ102及び/若しくはRF回路108から取り込まれ、並びに/又はメモリ102及び/若しくはRF回路108へ送信される。いくつかの実施形態において、オーディオ回路110は更にヘッドセットジャック(例えば、図2の212)を備える。ヘッドセットジャックは、オーディオ回路110と、出力専用ヘッドホン又は出力(例えば、片耳又は両耳用のヘッドホン)及び入力(例えば、マイクロホン)の両方を持つヘッドセットなどの、取り外し可能なオーディオ入出力周辺機器との間のインタフェースを提供する。
I/Oサブシステム106は、周辺機器インタフェース118と、タッチ感知ディスプレイ112及び他の入力又は制御デバイス116などのデバイス100の入出力周辺機器を結合する。I/Oサブシステム106は、ディスプレイコントローラ156、光センサコントローラ158、強度センサコントローラ159、触覚フィードバックコントローラ161、及び他の入力又は制御デバイス用の1つ以上の入力コントローラ160を、任意選択的に含む。1つ以上の入力コントローラ160は、他の入力又は制御デバイス116から/へ電気信号を受信/送信する。他の入力又は制御デバイス116は、物理ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイヤル、スライダースイッチ、ジョイスティック、クリックホイールなどを、任意選択的に含む。いくつかの代替的実施形態において、入力コントローラ(単数又は複数)160は、キーボード、赤外線ポート、USBポート、スタイラス、及び/又はマウスなどのポインタデバイスのうちのいずれかと、任意選択的に結合される(又は、いずれにも結合されない)。1つ以上のボタン(例えば、図2の208)は、スピーカ111及び/又はマイクロホン113の音量調節のためのアップ/ダウンボタンを、任意選択的に含む。1つ以上のボタンは、プッシュボタン(例えば、図2の206)を、任意選択的に含む。
タッチ感知ディスプレイ112は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ156は、タッチ感知ディスプレイ112から/への電気信号を受信し及び/又は送信する。タッチ感知ディスプレイ112は、ユーザに視覚出力を表示する。視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びこれらの任意の組み合わせ(総称して「グラフィック」と称する)を、任意選択的に含む。いくつかの実施形態では、視覚出力の一部又は全ては、ユーザインタフェースオブジェクトに対応する。本明細書で使用する場合、用語「アフォーダンス」は、ユーザ対話型グラフィカルユーザインタフェースオブジェクト(例えば、グラフィカルユーザインタフェースオブジェクトに向かってダイレクトされる入力に応答するように構成されたグラフィカルユーザインタフェースオブジェクト)を指す。ユーザ対話型グラフィカルユーザインタフェースオブジェクトの例としては、ボタン、スライダ、アイコン、選択可能なメニュー項目、スイッチ、ハイパーリンク、タング、ページングドット、又は他のユーザインタフェース制御が挙げられるが、これに限定されるものではない。
タッチ感知ディスプレイ112は、触覚及び/若しくは触感の接触に基づくユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有している。タッチ感知ディスプレイ112及びディスプレイコントローラ156(メモリ102内の任意の関連モジュール及び/又は命令セットと共に)は、タッチ感知ディスプレイ112上で接触(及び任意の動作又は接触の中断)を検出し、検出された接触をタッチ感知ディスプレイ112上に表示されたユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との対話に変換する。ある例示的な実施形態では、タッチ感知ディスプレイ112とユーザとの間の接触は、ユーザの指又はスタイラスに対応する。
タッチ感知ディスプレイ112は、任意選択的に、LCD(液晶ディスプレイ)技術、LPD(発光ポリマーディスプレイ)技術、又はLED(発光ダイオード)技術を使用するが、他の実施形態では、他のディスプレイ技術が使用される。タッチ感知ディスプレイ112及びディスプレイコントローラ156は、静電容量技術、抵抗性技術、赤外線技術、及び表面超音波技術、並びに、タッチ感知ディスプレイ112との1つ以上の接触点を判定するための他の近接センサアレイ又は他の要素を含むが、これらに限定されない、現在公知の若しくは後日に開発される複数のタッチ感知技術のうちのいずれかを使用して、接触及び任意の移動又はその中断を、任意選択的に検出する。ある例示的な実施形態では、California州CupertinoのAppleInc.からのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)などにおいて見られるような、投影された相互キャパシタンス検知技術が使用されている。
タッチ感知ディスプレイ112は、任意選択的に、100dpiを超える映像解像度を有する。いくつかの実施形態では、タッチスクリーンの映像解像度は、400dpi以上(例えば、500dpi、800dpi、又はそれより大きい)である。ユーザは、スタイラス、指などの任意の好適なオブジェクト又は付属器を使用して、タッチ感知ディスプレイ112と、任意選択的に接触する。いくつかの実施形態では、ユーザインタフェースは、指に基づく接触及びジェスチャで機能するように設計され、タッチスクリーン上の指の接触面積が広いことにより、スタイラスに基づく入力よりも精度が低いことがある。いくつかの実施形態において、デバイスは、粗い指に基づく入力を正確なポインタ/カーソル位置又はユーザの望むアクションを実行するためのコマンドに変換する。
いくつかの実施形態では、タッチスクリーンに加えて、デバイス100は、特定の機能をアクティブ化又は非アクティブ化させるためのタッチパッド(図示せず)を、任意選択的に含む。いくつかの実施形態において、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知エリアである。
デバイス100はまた、様々な構成要素に電力を供給するための電力システム162も含む。電力システム162は、任意選択的に、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態標識(例えば、発光ダイオード(LED))、並びにポータブルデバイス内での電力の生成、管理、及び分配に関連付けられた任意の他の構成要素を含む。
デバイス100はまた、1つ以上の光センサ164も、任意選択的に含む。図1Aは、I/Oサブシステム106内の光センサコントローラ158と結合された光センサを示す。光センサ(単数又は複数)164は、電荷結合デバイス(CCD)又は相補的金属酸化物半導体(CMOS)フォトトランジスタを、任意選択的に含む。光センサ(単数又は複数)164は、1つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像を表すデータに変換する。撮像モジュール143(カメラモジュールとも称する)と併用して、光センサ(単数又は複数)164は、静止画像及び/又は映像を、任意選択的にキャプチャする。いくつかの実施形態において、タッチスクリーンを静止画像及び/又は映像取得のためのビューファインダとして有効化されるように、光センサは、デバイスの前面のタッチ感知ディスプレイ112の反対側である、デバイス100の背面に配置されている。いくつかの実施形態において、(例えば、セルフィーの場合、ユーザがタッチスクリーン上で他のビデオ会議参加者を見ながらビデオ会議するための場合など)ユーザの画像を得るように、別の光センサがデバイスの前面に配置される。
デバイス100はまた、1つ以上の接触強度センサ165も任意選択的に含む。図1Aは、I/Oサブシステム106内の強度センサコントローラ159と結合された接触強度センサを示す。接触強度センサ(単数又は複数)165は、1つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(又は圧力)を測定するために使用するセンサ)を、任意選択的に含む。接触強度センサ(単数又は複数)165は、環境から接触強度情報(例えば、圧力情報又は圧力情報のプロキシ)を受信する。いくつかの実施形態では、少なくとも1つの接触強度センサが、タッチ感知面(例えば、タッチ感知ディスプレイ112)に併置されているか、又は近接している。いくつかの実施形態では、少なくとも1つの接触強度センサが、デバイス100の前面に配置されたタッチスクリーンディスプレイシステム112の反対側である、デバイス100の背面に配置されている。
デバイス100は、1つ以上の近接センサ166も、任意選択的に含む。図1Aは、周辺機器インタフェース118と結合された近接センサ166を示す。あるいは、近接センサ166は、I/Oサブシステム106内の入力コントローラ160と結合される。いくつかの実施形態では、多機能デバイスがユーザの耳の近くに配置されている場合(例えば、ユーザが電話通話を行っている場合)、近接センサがオフになり、タッチ感知ディスプレイ112が無効になる。
デバイス100はまた、1つ以上の触知出力生成器167も任意選択的に含む。図1Aは、I/Oサブシステム106内の触覚フィードバックコントローラ161と結合された触知出力生成器を示す。触知出力生成器(単数又は複数)167は、スピーカ又は他の音声構成要素などの1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマ、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力構成要素(例えば、デバイス上で電気信号を触知出力に変換する構成要素)などの、エネルギーを直線運動に変換する電気機械デバイスを、任意選択的に含む。触知出力生成器(単数又は複数)167は、触覚フィードバックモジュール133から触覚フィードバック生成命令を受信し、デバイス100のユーザが感知できる触知出力をデバイス100上で生成する。いくつかの実施形態において、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイ112)と併置されているか、又は近接しており、任意選択的に、タッチ感知面を垂直方向に(例えば、デバイス100の表面の内/外)又は横方向(例えば、デバイス100の表面と同じ平面の前後方向)に移動することによって、触知出力を生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器センサは、デバイス100の前面に配置されたタッチ感知ディスプレイ112の反対側である、デバイス100の背面に配置されている。
デバイス100はまた、1つ以上の加速度計168も任意選択的に含む。図1Aは、周辺機器インタフェース118と結合された加速度計168を示す。あるいは、加速度計168は、I/Oサブシステム106内の入力コントローラ160と、任意選択的に、結合される。いくつかの実施形態では、情報は、1つ以上の加速度計から受信したデータの分析に基づいて、ポートレートビュー又はランドスケープビューでタッチスクリーンディスプレイ上に表示される。デバイス100は、必要に応じて、加速度計(単数又は複数)168に加えて、磁力計(図示せず)並びにデバイス100の位置及び向き(例えば、ポートレート又はランドスケープ)に関する情報を取得するためのGPS(又はGLONASS又は他のグローバルナビゲーションシステム)受信部(図示せず)を、任意選択的に含む。
いくつかの実施形態では、メモリ102に記憶されたソフトウェア構成要素は、オペレーティングシステム126、通信モジュール(又は命令セット)128、接触/動きモジュール(又は命令セット)130、グラフィックモジュール(又は命令セット)132、触覚フィードバックモジュール(又は命令セット)133、テキスト入力モジュール(又は命令セット)134、全地球測位システム(GPS)モジュール(又は命令セット)135、及びアプリケーション(又は命令セット)136を含む。更に、いくつかの実施形態では、図1A及び図3に示すように、メモリ102はデバイス/グローバル内部状態157を記憶する。デバイス/グローバル内部状態157は、以下の1つ以上を含む:現在アクティブ状態のアプリケーションがあれば、どのアプリケーションがアクティブかを示す、アクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチ感知ディスプレイ112の様々な領域を占領しているかを示す、表示状態、デバイスの様々なセンサ及び他の入力又は制御デバイス116から得られる情報を含む、センサ状態、並びに、デバイスの位置及び/又は姿勢に関する位置及び/又はポジション情報。
オペレーティングシステム126(例えば、iOS(登録商標)、Darwin(登録商標)、RTXC(登録商標)、LINUX(登録商標)、UNIX(登録商標)、OS X(登録商標)、WINDOWS(登録商標)、又はVxWorks(登録商標)などの組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための様々なソフトウェア構成要素及び/又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を容易にする。
通信モジュール128は、1つ以上の外部ポート124を介して他のデバイスとの通信を容易にし、RF回路108及び/又は外部ポート124が受信したデータを処理するための様々なソフトウェア構成要素を含む。外部ポート124(例えば、ユニバーサルシリアルバス(USB)、FIREWIRE(登録商標)など)は、直接的に、又はネットワーク(例えば、インターネット、無線LANなど)を介して間接的に他のデバイスに結合するように適合される。いくつかの実施形態では、外部ポートは、California州CupertinoのApple Inc.のiPhone(登録商標)、iPod Touch(登録商標)及びiPad(登録商標)デバイス上で使用される30ピンコネクタと同一の、又はこれに類似した及び/若しくは互換性のあるマルチピン(例えば、30ピン)コネクタである。いくつかの実施形態では、外部ポートは、California州CupertinoのApple Inc.のiPhone(登録商標)、iPod Touch(登録商標)及びiPad(登録商標)デバイス上で使用されるLightning(登録商標)コネクタと同一の、又はこれに類似した及び/若しくは互換性のあるLightningコネクタである。
接触/動きモジュール130は、任意選択的に、(ディスプレイコントローラ156と併せて)タッチ感知ディスプレイ112との接触、及び他のタッチ感知デバイス(例えば、タッチパッド又は物理クリックホイール)との接触を検出する。接触/動きモジュール130は、接触が発生したかどうかの判定(例えば、フィンガーダウンイベントの検出)、接触の強度(例えば、接触の力若しくは圧力、又は、接触の力若しくは圧力の代用語)の判定、接触の移動及びタッチ感知面にわたる動きの追跡(例えば、1つ以上のフィンガードラッグイベントの検出)があるかどうかの判定、及び接触が中止したかどうか(例えば、フィンガーアップイベント又は接触の中断の検出)の判定などの、(例えば、指による、又はスタイラスによる)接触の検出に関係する様々な動作を実行するための様々なソフトウェア構成要素を含む。接触/動きモジュール130は、タッチ感知面から接触データを受信する。一連の接触データにより表される接触点の移動を判定することは、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向の変化)を判定することを、任意選択的に含む。これらの動作は、任意選択的に、単一の接触(例えば、1つの指の接触又はスタイラスの接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。いくつかの実施形態において、接触/動きモジュール130及びディスプレイコントローラ156は、タッチパッド上の接触を検出する。
接触/動きモジュール130は、任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターン(例えば、異なる動き、タイミング、及び/又は検出された接触の強度)を有する。したがって、ジェスチャは、特定の接触パターンを検出することによって、任意選択的に検出される。例えば、指のタップジェスチャを検出することは、フィンガーダウンイベントを検出し、続いて(例えば、アイコンの位置での)そのフィンガーダウンイベントと同じ位置(又は、実質的に同じ位置)でフィンガーアップ(リフトオフする)イベントを検出することを含む。他の実施例として、タッチ感知面でのフィンガースワイプジェスチャの検出は、フィンガーダウンイベントを検出し、続いて1つ以上のフィンガードラッグイベントを検出し、その後、フィンガーアップ(リフトオフ)イベントを検出することを含む。同様に、タップ、スワイプ、ドラッグ及び他のジェスチャは、スタイラスについて、そのスタイラスに対する特定の接触パターンを検出することによって任意選択的に検出される。
グラフィックモジュール132は、表示されるグラフィックの視覚的効果(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚特性)を変更するための構成要素を含めた、タッチ感知ディスプレイ112又は他のディスプレイ上にグラフィックをレンダリングして表示するための、様々な既知のソフトウェア構成要素を含む。本明細書で使用する時、用語「グラフィック」は、ユーザに対して表示することができる任意のオブジェクトを含み、それらのオブジェクトとしては、テキスト、ウェブページ、アイコン(ソフトキーを含むユーザインタフェースオブジェクトなど)、デジタル画像、ビデオ、アニメーションなどが挙げられるが、これらに限定されない。
いくつかの実施形態において、グラフィックモジュール132は、使用されるグラフィックを表すデータを記憶する。それぞれのグラフィックには、対応するコードが、任意選択的に割り当てられる。グラフィックモジュール132は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィックプロパティデータと共に、表示されるグラフィックを指定する1つ以上のコードを受信し、次にディスプレイコントローラ156に出力する画面画像データを生成する。
触覚フィードバックモジュール133は、デバイス100とのユーザ対話に応じて、デバイス100上の1つ以上の場所で触知出力を生成するために、触知出力生成器(単数又は複数)167によって使用される命令を生成するための、様々なソフトウェア構成要素を含む。
テキスト入力モジュール134は、任意選択的に、グラフィックモジュール132の構成要素であり、様々なアプリケーション(例えば、連絡先137、電子メール140、IM141、ブラウザ147、及びテキスト入力を必要とする任意の他のアプリケーション)でテキストを入力するための、ソフトキーボードを提供する。言語モジュール134−1は、任意選択的に、テキスト入力モジュール134の構成要素であり、キーボードからのキーストローク選択と関連付けられる言語を提供する。そのモジュールは、複数の言語を含み、管理することができる。オートコレクト/辞書モジュール134−2は、任意選択的に、言語モジュール134−1の構成要素であり、選択された言語と関連付けられる辞書を提供する。オートコレクト/辞書モジュール134−2はまた、選択された言語を用いたオートコレクト機能を提供するよう構成され得る。
GPSモジュール135は、デバイスの位置を判定し、この情報を様々なアプリケーションで使用するために提供する(例えば、ロケーションベースダイアル発呼で使用するための電話138へ、ピクチャ/ビデオのメタデータとしてカメラ143へ、並びに気象ウィジェット、地方のイエローページウィジェット、及び地図/ナビゲーションウィジェットなどのロケーションベースのサービスを提供するアプリケーションへ)。
アプリケーション136は、任意選択的に以下のモジュール(又は、命令のセット)、又はそれらの部分集合若しくは上位集合を含む。
・連絡先モジュール137(時には、アドレス帳又は連絡先リストとも呼ぶ)、
・電話モジュール138、
・ビデオ会議モジュール139、
・電子メールクライアントモジュール140、
・インスタントメッセージ(IM)モジュール141、
・フィットネスモジュール142、
・静止画像及び/又はビデオ用のカメラモジュール143、
・画像管理モジュール144、
・ブラウザモジュール147、
・カレンダーモジュール148、
・気象ウィジェット149−1、株式ウィジェット149−2、計算機ウィジェット149−3、アラーム時計ウィジェット149−4、辞書ウィジェット149−5、及びユーザによって取得された他のウィジェット、並びにユーザ作成ウィジェット149−6のうちの1つ以上を任意選択的に含む、ウィジェットモジュール149、
・ユーザ作成ウィジェット149−6を作るためのウィジェットクリエータモジュール150、
・検索モジュール151、
・任意選択的にビデオプレーヤモジュールと音楽プレーヤモジュールで構成された、ビデオ及び音楽プレーヤモジュール152、
・メモモジュール153、
・地図モジュール154、及び/又は
・オンラインビデオモジュール155。
任意選択的にメモリ102内に記憶される他のアプリケーション136の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
タッチ感知ディスプレイ112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と共に、連絡先モジュール137は、(例えば、メモリ102又はメモリ370内の連絡先モジュール137のアプリケーション内部状態192に記憶された)アドレス帳又は連絡先リストを管理するための実行可能命令を含み、この管理には、アドレス帳に名前(単数又は複数)を追加すること、アドレスブックから名前(単数又は複数)を削除すること、電話番号(単数又は複数)、メールアドレス(単数又は複数)、住所(単数又は複数)、又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類して振り分けること、電話番号及び/又はメールアドレスを提供して、電話138、テレビ会議139、メール140、若しくはIM141による通信を開始させる及び/又は容易にすること、などが含まれる。
RF回路108、オーディオ回路110、スピーカ111、マイクロホン113、タッチ感知ディスプレイ112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と併せて、電話モジュール138は、電話番号と対応する一連の文字を入力し、アドレス帳137内の1つ以上の電話番号にアクセスし、入力されている電話番号を修正し、対応する電話番号をダイヤルし、会話を遂行し、会話が完了した際に接続を切るか又は電話を切るための実行可能命令を含む。上述のように、無線通信は、複数の通信規格、プロトコル、及び技術のうちのいずれかを任意選択的に使用する。
RF回路108、オーディオ回路110、スピーカ111、マイクロホン113、タッチ感知ディスプレイ112、ディスプレイコントローラ156、光センサ(単数又は複数)164、光センサコントローラ158、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、連絡先リスト137、及び電話モジュール138と併せて、ビデオ会議モジュール139は、ユーザの指示に従って、ユーザと1人以上の他の参加者との間のビデオ会議を開始し、行い、終了するための、実行可能命令を含む。
RF回路108、タッチ感知ディスプレイ112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、言語モジュール134−1、及びオートコレクト/辞書モジュール134−2と関連して、電子メールクライアントモジュール140は、ユーザの指示に応じて、電子メールを作成し、送信し、受信し、管理するための、実行可能命令を含む。画像管理モジュール144と併せて、電子メールクライアントモジュール140により、カメラモジュール143で撮影した静止画像又は映像を作成し、電子メールを送信することが非常に簡単になる。
RF回路108、タッチ感知ディスプレイ112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、言語モジュール134−1、及びオートコレクト/辞書モジュール134−2と関連して、インスタントメッセージングモジュール141は、インスタントメッセージに対応する一連の文字を入力し、従前に入力された文字を修正し、(例えば、電話ベースのインスタントメッセージ用のショートメッセージサービス(SMS)若しくはマルチメディアメッセージサービス(MMS)プロトコルを使用して、又はインターネットベースのインスタントメッセージ用のXMPP、SIMPLE、アップルプッシュ通知サービス(APN)若しくはIMPSを使用して)それぞれのインスタントメッセージを送信し、インスタントメッセージを受信し、受信されたインスタントメッセージを見るための、実行可能命令を含む。いくつかの実施形態では、送信及び/又は受信されたインスタントメッセージは、MMS及び/又は拡張メッセージングサービス(EMS)でサポートされるように、グラフィック、写真、オーディオファイル、映像ファイル、及び/又は他の添付を、任意選択的に含む。本明細書では、「インスタントメッセージ」とは、電話ベースのメッセージ(例えば、SMS又はMMSを使用して送信されたメッセージ)及びインターネットベースのメッセージ(例えば、XMPP、SIMPLE、APN又はIMPSを使用して送信されたメッセージ)の両方を意味する。
RF回路108、タッチ感知ディスプレイ112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、地図モジュール154、及び音楽プレーヤモジュール146と併せて、フィットネスモジュール142は、(例えば、時間、距離、及び/又はカロリー消費目標を有する)フィットネスプランを生成する、(スポーツデバイス及びスマートウォッチの中の)フィットネスセンサと通信する、フィットネスセンサデータを受信する、フィットネスプランをモニタリングするために使用されるセンサを較正する、フィットネスプラン用の、又はフィットネスプラン中に音楽を選択して再生する、並びに、フィットネスデータを表示、記憶、及び送信するための、実行可能命令を含む。
タッチ感知ディスプレイ112、ディスプレイコントローラ156、光センサ(単数又は複数)164、光センサコントローラ158、接触モジュール130、グラフィックモジュール132、及び画像管理モジュール144と併せて、カメラモジュール143は、静止画像又はビデオ(ビデオストリームを含む)をキャプチャしてメモリ102にそれらを記憶したり、静止画像又はビデオの特徴を変更したり、及び/又はメモリ102から静止画像若しくは動画を削除したりするための、実行可能命令を含む。
タッチ感知ディスプレイ112、ディスプレイコントローラ156、接触モジュール130、グラフィクモジュール132、テキスト入力モジュール134、及びカメラモジュール143と関連して、画像管理モジュール144は、静止画像及び/又はビデオを配置し、修正し(例えば、編集し)及び別の方法で操作し、ラベルを付け、削除し、提示し(例えば、デジタルスライドショー又はアルバム内で)、並びに記憶したりするための実行可能命令を含む。
RF回路108、タッチ感知ディスプレイ112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、言語モジュール134−1、及びオートコレクト/辞書モジュール134−2と関連して、ブラウザモジュール147は、ウェブページ又はその諸部分、並びにウェブページにリンクされた添付ファイル及び他のファイルを検索すること、リンクすること、受信すること、及び表示することを含めた、ユーザの指示に従ってインターネットを閲覧するための、実行可能命令を含む。
RF回路108、タッチ感知ディスプレイ112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、言語モジュール134−1、オートコレクト/辞書モジュール134−2、電子メールクライアントモジュール140、及びブラウザモジュール147と関連して、カレンダーモジュール148は、ユーザの指示に従って、カレンダー、及びカレンダーに関連付けられたデータ(例えば、カレンダー項目、to doリストなど)を作成し、表示し、修正し、記憶するための、実行可能命令を含む。
RF回路108、タッチ感知ディスプレイ112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と関連して、ウィジェットモジュール149は、ユーザによって任意選択的にダウンロードされ、使用されるミニアプリケーション(例えば、気象ウィジェット149−1、株式ウィジェット149−2、計算機ウィジェット149−3、アラーム時計ウィジェット149−4、及び辞書ウィジェット149−5)、又はユーザによって作成されるミニアプリケーション(例えば、ユーザ作成ウィジェット149−6)である。いくつかの実施形態では、ウィジェットは、HTML(ハイパーテキストマークアップ言語)ファイル、CSS(カスケーディングスタイルシート)ファイル、及びJavaScriptファイルを含む。いくつかの実施形態では、ウィジェットは、XML(拡張可能マークアップ言語)ファイル及びJavaScript(登録商標)ファイル(例えば、Yahoo!(登録商標)ウィジェット)を含む。
RF回路108、タッチ感知ディスプレイ112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と関連して、ウィジェットクリエータモジュール150は、ウィジェットを作成する(例えば、ウェブページのユーザ指定箇所をウィジェットに変える)ための実行可能命令を含む。
タッチ感知ディスプレイ112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、言語モジュール134−1、及びオートコレクト/辞書モジュール134−2と関連して、検索モジュール151は、ユーザの指示に従って、1つ以上の検索基準(例えば、1つ以上のユーザ指定の検索条件)に一致する、メモリ102内のテキスト、音楽、音声、画像、ビデオ、及び/又は他のファイルを検索するための、実行可能命令を含む。
タッチ感知ディスプレイ112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィクモジュール132、オーディオ回路110、スピーカ111、RF回路108、及びブラウザモジュール147と関連して、ビデオ及び音楽プレーヤモジュール152は、MP3ファイル又はAACファイルなどの1つ以上のファイル形式で記憶された録音済みの音楽又は他のサウンドファイルをユーザがダウンロード及び再生できるようにする実行可能命令、並びにビデオを(タッチ感知ディスプレイ112上又は外部ポート124を介して接続された外部のディスプレイ上に)表示、提示、又は別の方法で再生するための実行可能命令を含む。いくつかの実施形態において、デバイス100は、任意選択的に、iPod(Apple Inc.の登録商標)などのMP3プレーヤの機能を含む。
タッチ感知ディスプレイ112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、言語モジュール134−1、及びオートコレクト/辞書モジュール134−2と関連して、メモモジュール153は、ユーザの指示に従って、メモ、to doリストなどを作成及び管理するための、実行可能命令を含む。
RF回路108、タッチ感知ディスプレイ112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、言語モジュール134−1、オートコレクト/辞書モジュール134−2、GPSモジュール135、及びブラウザモジュール147と関連して、地図モジュール154は、ユーザの指示に従って、地図、及び地図と関連付けられたデータ(例えば、運転の方向、特定の場所若しくはその付近の店舗及び関心対象の他の地点についてのデータ、並びに場所に基づく他のデータ)を受信し、表示し、修正し、記憶するための、実行可能命令を含む。
タッチ感知ディスプレイ112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、オーディオ回路110、スピーカ111、RF回路108、テキスト入力モジュール134、言語モジュール134−1、オートコレクト/辞書モジュール134−2、電子メールクライアントモジュール140、及びブラウザモジュール147と関連して、オンラインビデオモジュール155は、ユーザが、特定のオンラインビデオにアクセスし、閲覧し、(例えば、ストリーミング及び/又はダウンロードによって)受信し、(例えば、タッチスクリーン112上で、又は無線で若しくは外部ポート124を介して接続された外部のディスプレイ上で)再生し、そのオンラインビデオへのリンクを有する電子メールを送信し、また他の方式で、H.264などの1つ以上のファイル形式でオンラインビデオを管理することが可能となる、実行可能命令を含む。いくつかの実施形態においては、電子メールクライアントモジュール140ではなく、インスタントメッセージモジュール141が、特定のオンライン映像へのリンクを送信するために用いられる。
上記で識別されたモジュール及びアプリケーションのそれぞれは、1つ又はそれ以上の上記の機能を実行するための実行可能命令セット及び本出願に記載の方法(例えば、コンピュータにより実行される方法及び本明細書に記載の他の情報処理方法)に対応する。これらのモジュール(すなわち、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、したがって、これらのモジュールの様々なサブセットは、様々な実施形態において、任意選択的に、組み合わせ又は再配置される。いくつかの実施形態において、メモリ102は、上述の識別されたモジュール及びデータ構造のサブセットを、任意選択的に記憶する。更に、メモリ102は、上述されていない追加のモジュール及びデータ構造を、任意選択的に記憶する。
いくつかの実施形態では、デバイス100は、デバイス上の機能の既定のセットの動作が排他的にタッチスクリーン及び/又はタッチパッドを介して実行されるデバイスである。機器100の動作のための主要入力制御機器としてタッチスクリーン及び/又はタッチパッドを使用することにより、機器100上の物理的な入力制御機器(プッシュボタン、ダイヤル、及び類似物など)の数を、任意選択的に減らす。
排他的にタッチスクリーン及び/又はタッチパッドを介して実行される、既定の機能のセットは、任意選択的にユーザインタフェース間のナビゲーションを含む。いくつかの実施形態において、タッチパッドは、ユーザによってタッチされると、デバイス100上に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューへデバイス100をナビゲートする。かかる実施形態において、「メニューボタン」はタッチパッドを使って実装される。いくつかの他の実施形態におい、メニューボタンは、タッチパッドの代わりに、物理的なプッシュボタン又は他の物理的な入力制御デバイスである。
図1Bは、いくつかの実施形態に係る、イベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ102(図1A内)又は370(図3)は、イベントソータ170(例えば、オペレーティングシステム126内)及びそれぞれのアプリケーション136−1(例えば、上述のアプリケーション136、137〜155、及び380〜390のいずれか)を含む。
イベントソータ170は、イベント情報を受信し、イベント情報を配信するアプリケーション136−1及びアプリケーション136−1のアプリケーションビュー191を決定する。イベントソータ170は、イベントモニタ171及びイベントディスパッチャモジュール174を含む。いくつかの実施形態では、アプリケーション136−1は、アプリケーションがアクティブ又は実行中の時、タッチ感知ディスプレイ112で上に表示される現在のアプリケーションビュー(単数又は複数)を示す、アプリケーション内部状態192を含む。いくつかの実施形態では、デバイス/グローバル内部状態157は、いずれのアプリケーション(単数又は複数)が現在アクティブであるかを判定するために、イベントソータ170によって使用され、アプリケーション内部状態192は、イベント情報の配信先となるアプリケーションビュー191を決定するために、イベントソータ170によって使用される。
いくつかの実施形態では、アプリケーション内部状態192は、アプリケーション136−1が実行を再開する際に使用される再開情報、アプリケーション136−1によって情報が表示されているか又は表示の準備が整っていることを示すユーザインタフェース状態情報、ユーザがアプリケーション136−1の以前の状態又はビューに戻ることを可能にするための状態待ち行列、及びユーザが以前に行ったアクションのリドゥ/アンドゥ待ち行列のうちの1つ以上などの追加情報を含む。
イベントモニタ171は、周辺機器インタフェース118からイベント情報を受信する。イベント情報は、サブイベント(例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイ112上でのユーザのタッチ)についての情報を含む。周辺機器インタフェース118は、I/Oサブシステム106又は近接センサ166、加速度計(単数又は複数)168、及び/若しくは(オーディオ回路110を介して)マイクロホン113などのセンサから受信する情報を送信する。周辺機器インタフェース118がI/Oサブシステム106から受信する情報は、タッチ感知ディスプレイ112又はタッチ感知面からの情報を含む。
いくつかの実施形態では、イベントモニタ171は、所定の間隔で周辺機器インタフェース118に要求を送信する。これに応じて、周辺機器インタフェース118は、イベント情報を送信する。他の実施形態において、周辺機器インタフェース118は、重要なイベント(例えば、所定のノイズ閾値を超える、及び/又は所定時間より長い入力を受け付けること)がある場合にのみイベント情報を送信する。
いくつかの実施形態では、イベントソータ170はまた、ヒットビュー判定モジュール172及び/又はアクティブイベント認識部判定モジュール173も含む。
ヒットビュー判定モジュール172は、タッチ感知ディスプレイ112が1つ以上のビューを表示した際に、1つ以上のビュー内のどこにおいてサブイベントが発生したかを判定するためのソフトウェア手続きを提供する。ビューは、ユーザがディスプレイ上で見ることが可能な、制御部及び他の要素で構成される。
アプリケーションに関連付けられるユーザインタフェースの別の態様は、本明細書では、アプリケーションビュー又はユーザインタフェースウィンドウと呼ばれる場合がある、ビューのセットであり、それらの中で、情報が表示され、タッチに基づくジェスチャが実施される。タッチが検出される(それぞれのアプリケーションの)アプリケーションビューは、アプリケーションのプログラム階層又はビュー階層内のプログラムレベルに、任意選択的に対応する。例えば、タッチが検出される最低レベルのビューは、任意選択的に、ヒットビューと呼ばれ、適切な入力として認識されるイベントのセットは、少なくとも部分的に、タッチベースのジェスチャを開始する最初のタッチのヒットビューに基づいて、任意選択的に判定される。
ヒットビュー判定モジュール172は、タッチベースのジェスチャのサブイベントと関連付けられた情報を受信する。アプリケーションが、階層として編成された複数のビューを有する場合、ヒットビュー判定モジュール172は、サブイベントを処理するべき階層内の最下位のビューとして、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、最初のサブイベント(即ち、イベント又は潜在的なイベントを形成するサブイベントのシーケンスにおける最初のサブイベント)が発生する最低レベルのビューである。ヒットビューがヒットビュー判定モジュールによって識別されると、ヒットビューは、典型的には、それがヒットビューとして識別された、同じタッチ又は入力ソースに関連する全てのサブイベントを受信する。
アクティブイベントレコグナイザ判定モジュール173は、ビュー階層内のどのビュー(単数又は複数)がサブイベントの特定のシーケンスを受信するべきかを判定する。いくつかの実施形態において、アクティブイベント認識部判定モジュール173は、ヒットビューのみがサブイベントの特定のシーケンスを受信するべきであると判定する。他の実施形態において、アクティブイベント認識部判定モジュール173は、サブイベントの物理的な位置を含む全てのビューはアクティブに関わっているビューであると判定し、したがって、全てのアクティブに関わっているビューは、サブイベントの特定のシーケンスを受信するべきであると判定する。他の実施形態では、タッチサブイベントがある特定のビューに関連付けられた領域に完全に限定されたとしても、階層の上位のビューはアクティブに関わっているビューのままであるであろう。
イベントディスパッチャモジュール174は、イベント情報をイベント認識部(例えば、イベント認識部180)に送信する。アクティブイベント識別部判定モジュール173を含む実施形態において、イベントディスパッチャモジュール174は、アクティブイベント認識部判定モジュール173により判定されたイベント認識部にイベント情報を配信する。いくつかの実施形態では、イベントディスパッチャモジュール174は、それぞれのイベント受信部モジュール182により取得されるイベント情報をイベント待ち行列内に記憶する。
いくつかの実施形態では、オペレーティングシステム126は、イベントソータ170を含む。あるいは、アプリケーション136−1が、イベントソータ170を含む。更に他の実施形態において、イベントソータ170は、スタンドアロンモジュール、又は接触/動きモジュール130などのメモリ102に記憶された他のモジュールの一部である。
いくつかの実施形態では、アプリケーション136−1は、そのアプリケーションのユーザインタフェースの各ビュー内で発生するタッチイベントを処理する命令をそれぞれが含む、複数のイベントハンドラ190及び1つ以上のアプリケーションビュー191を含む。アプリケーション136−1のそれぞれのアプリケーションビュー191は、1つ以上のイベント認識部180を含む。典型的に、それぞれのアプリケーョンビュー191は、複数のイベント認識部180を含む。他の実施形態において、イベント認識部180のうちの1つ以上は、ユーザインタフェースキット(図示せず)又はアプリケーション136−1が方法及び他のプロパティを継承する上位レベルのオブジェクトなど、別個のモジュールの一部である。いくつかの実施形態において、それぞれのイベントハンドラ190は、データアップデーター176、オブジェクトアップデーター177、GUIアップデーター178、及び/又はイベントソータ170から受信したイベントデータ179のうちの1つ以上を含む。イベントハンドラ190は、アプリケーション内部状態192を更新するために、データアップデーター176、オブジェクトアップデーター177、又はGUIアップデーター178を、任意選択的に利用若しくは呼び出す。あるいは、アプリケーションビュー191のうちの1つ以上は、1つ以上のそれぞれのイベントハンドラ190を含む。また、いくつかの実施形態において、データアップデーター176、オブジェクトアップデーター177、及びGUIアップデーター178のうちの1つ以上がそれぞれのアプリケーションビュー191内に含まれている。
各イベント認識部180は、イベントソータ170からイベント情報(例えば、イベントデータ179)を受信し、そのイベント情報からイベントを特定する。イベント認識部180は、イベント受信部182及びイベント比較部184を含む。いくつかの実施形態において、イベント認識部180は更に、メタデータ183及びイベント配信命令188(任意選択的に、サブイベント配信命令を含む)の少なくともサブセットを含む。
イベント受信器182は、イベントソータ170からイベント情報を受信する。イベント情報は、例えば、タッチ又はタッチの移動などのサブイベントの情報を含む。サブイベントによっては、イベント情報は、サブイベントの位置などの追加情報もまた含む。サブイベントが、タッチの動きに関わる時、イベント情報は、サブイベントの速度及び方向を、任意選択的に更に含む。いくつかの実施形態において、イベントは、ある方向から別の方向へ(例えば、ポートレートの向きからランドスケープの向きへ、又はその逆)のデバイスの回転を含み、イベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ばれる)についての対応する情報を含む。
イベント比較部184は、イベント情報を既定のイベント又はサブイベントの定義と比較し、その比較により、イベント又はサブイベントを判定、又はイベント若しくはサブイベントの状態を判定又は更新する。いくつかの実施形態において、イベント比較部184は、イベント定義186を含む。イベント定義186は、例えば、イベント1(187−1)、イベント2(187−2)などの、イベントの定義(例えば、サブイベントの既定のシーケンス)を含む。いくつかの実施形態において、イベント187内のサブイベントは、例えば、タッチ開始、タッチ終了、タッチの移動、タッチの中止、及び複数のタッチを含む。ある実施例において、イベント1(187−1)の定義は、表示されたオブジェクト上のダブルタップである。ダブルタップは、例えば、表示されたオブジェクト上の所定の段階についての第1のタッチ(タッチ開始)、所定の段階についての第1のリフトオフ(タッチ終了)、表示されたオブジェクト上の所定の段階についての第2のタッチ(タッチ開始)、及び所定の段階についての第2のリフトオフ(タッチ終了)を含む。別の実施形態において、イベント2(187−2)の定義は、表示されたオブジェクト上のドラッグである。ドラッグは、例えば、表示されたオブジェクト上の所定の段階についてのタッチ(又は接触)、タッチ感知ディスプレイ112にわたるタッチの移動、及びタッチのリフトオフ(タッチ終了)を含む。いくつかの実施形態において、イベントは、1つ以上の関連付けられたイベントハンドラ190についての情報も含む。
いくつかの実施形態では、イベント定義187は、それぞれのユーザインタフェースオブジェクト用のイベントの定義を含む。いくつかの実施形態において、イベント比較部184は、サブイベントに関連付けられたユーザインタフェースオブジェクトを判定するヒットテストを実行する。例えば、3つのユーザインタフェースオブジェクトがタッチ感知ディスプレイ112に表示されるアプリケーションビューにおいて、タッチ感知ディスプレイ112上でタッチが検出されると、イベント比較部184は、3つのユーザインタフェースオブジェクトのうちのどれがタッチ(サブイベント)に関連付けられているかを判定するためのヒットテストを行う。表示されたそれぞれのオブジェクトが、それぞれのイベントハンドラ190に関連付けられている場合、イベント比較部はヒットテストの結果を用いて、アクティブ化する必要のあるイベントハンドラ190を判定する。例えば、イベント比較部184は、サブイベント及びヒットテストのトリガーとなるオブジェクトに関連付けられたイベントハンドラを選択する。
いくつかの実施形態では、各イベント187に関する定義はまた、サブイベントのシーケンスがイベント認識部のイベントタイプに対応するか否かが判定されるまで、イベント情報の送付を遅延させる、遅延作用も含む。
それぞれのイベント認識部180は、一連のサブイベントがイベント定義186のイベントのいずれとも一致しないと判定した場合、それぞれのイベント認識部180は、イベント不可能、イベント失敗、又はイベント終了の状態に入り、その後は、タッチベースのジェスチャの次のサブイベントを無視する。この状況では、もしあれば、ヒットビューについてアクティブのままである他のイベント認識部は、進行中のタッチベースのジェスチャのサブイベントの追跡及び処理を続行する。
いくつかの実施形態において、それぞれのイベント認識部180は、構成可能なプロパティ、フラグ、及び/又はイベント配信システムがアクティブに関わっているイベント認識部にどのようにサブイベント配信を実行するかについて示すリストを持つメタデータ183を含む。いくつかの実施形態において、メタデータ183は、イベント認識部が互いにどのように対話し得るかについて示す構成可能なプロパティ、フラグ、及び/又はリストを含む。いくつかの実施形態において、メタデータ183は、構成可能なプロパティ、フラグ、及び/又はサブイベントがビュー階層又はプログラム階層内の様々なレベルに配信されるかどうかを示すリストを含む。
いくつかの実施形態において、それぞれのイベント認識部180は、イベントの1つ以上の特定のサブイベントが認識された時に、イベントに関連付けられたイベントハンドラ190をアクティブ化する。いくつかの実施形態において、それぞれのイベント認識部180は、イベントハンドラ190に、イベントに関連付けられたイベント情報を配信する。イベントハンドラ190をアクティブ化することと、それぞれのヒットビューにサブイベントを送信(及び送信を延期する)することとは区別される。いくつかの実施形態において、イベント認識部180は、認識されたイベントに関連付けられたフラグをスローし、フラグに関連付けられたイベントハンドラ190はフラグをキャッチし、既定の処理を実行する。
いくつかの実施形態において、イベント配信命令188は、イベントハンドラをアクティブ化せずにサブイベントに関するイベント情報を配信するサブイベント配信命令を含む。その代わりに、サブイベント配信命令は、一連のサブイベントに関連付けられたイベントハンドラ又はアクティブに関わっているビューにイベント情報を配信する。一連のサブイベント又はアクティブに関わっているビューに関連付けられているイベントハンドラは、イベント情報を受信し、所定の処理を実行する。
いくつかの実施形態において、データアップデーター176は、アプリケーション136−1で使用されるデータを作成及び更新する。例えば、データアップデーター176は、連絡先モジュール137で使用される電話番号を更新したり、ビデオプレーヤモジュール145で使用されるビデオファイルを記憶したりする。いくつかの実施形態において、オブジェクトアップデーター177は、アプリケーション136−1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクトアップデーター177は、新たなユーザインタフェースオブジェクトを作成したり、ユーザインタフェースオブジェクトの位置を更新したりする。GUIアップデーター178は、GUIを更新する。例えば、GUIアップデーター178は、表示情報を準備し、タッチ感知ディスプレイ上に表示するため、表示情報をグラフィックモジュール132に送信する。
いくつかの実施形態では、イベントハンドラ190は、データアップデーター176、オブジェクトアップデーター177、及びGUIアップデーター178を含むか、若しくはそれらに対するアクセスを有する。いくつかの実施形態において、データアップデーター176、オブジェクトアップデーター177、及びGUIアップデーター178は、それぞれのアプリケーション136−1又はアプリケーションビュー191の1つのモジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の論考はまた、入力デバイスを使用して多機能デバイス100を動作させるための他の形態のユーザ入力にも適用されるが、その全てがタッチスクリーン上で開始されるわけではないことが理解されよう。例えば、単一又は複数のキーボードの押下又は保持に任意選択的に合わせたマウスの移動及びマウスボタンの押下、タッチパッド上でのタップ、ドラッグ、スクロールなどの接触移動、ペンスタイラス入力、デバイスの移動、口頭による指示、検出された眼球運動、バイオメトリック入力、及び/又はこれらの任意の組み合わせが、認識対象のイベントを定義するサブイベントに対応する入力として、任意選択的に利用される。
図2は、いくつかの実施形態に係る、タッチスクリーン(図1Aの例えば、タッチ感知ディスプレイ112)を有するポータブル多機能デバイス100を示す。タッチスクリーンは、ユーザインタフェース(UI)200内に1つ以上のグラフィックを、任意選択的に表示する。本実施形態並びに本明細書で説明する他の実施形態では、ユーザは、例えば、1本以上の指202(図には、正確な縮尺率では描かれていない)又は1つ以上のスタイラス203(図には、正確な縮尺率では描かれていない)を用いてグラフィック上でジェスチャを行うことにより、グラフィックのうちの1つ以上を選択できる。いくつかの実施形態において、ユーザが1つ以上のグラフィックとの接触を断った際に、1つ以上のグラフィックの選択が生じる。いくつかの実施形態において、ジェスチャは、1回以上のタップ、1回以上のスワイプ(左から右へ、右から左へ、上方向へ、及び/又は下方向へ)、及び/又はデバイス100と接触した指のローリング(右から左へ、左から右へ、上方向へ、及び/又は下方向へ)を、任意選択的に含む。いくつかの実装又は状況において、グラフィックとの偶発的な接触は、グラフィックを選択しない例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスワイプするスワイプジェスチャは任意選択的に、対応するアプリケーションを選択しない。
デバイス100はまた、「ホーム」又はメニューボタン204などの、1つ以上の物理ボタンも任意選択的に含む。前述のように、メニューボタン204は、デバイス100上で、任意選択的に、実行するアプリケーションのセット内の任意のアプリケーション136へのナビゲーションに、任意選択的に使用される。あるいは、いくつかの実施形態では、メニューボタンは、タッチスクリーンディスプレイ上に表示されたGUIにおけるソフトキーとして実装されている。
いくつかの実施形態では、デバイス100は、タッチスクリーンディスプレイ、メニューボタン204、デバイスへの電源をオン/オフし、デバイスをロックするためのプッシュボタン206、音量調整ボタン(単数又は複数)208、加入者識別モジュール(Subscriber Identity Module、SIM)カードスロット210、ヘッドセットジャック212、及びドッキング/充電用外部ポート124を含む。プッシュボタン206は、ボタンを押下して、既定の時間間隔にわたってボタンを押下された状態で保持することによって、デバイス上の電源をオン/オフし、ボタンを押下して、既定の時間間隔が経過する前にボタンを解放することによって、デバイスをロックし、かつ/又はデバイスをロック解除するか、若しくはロック解除処理を開始するために、任意選択的に使用される。いくつかの実施形態では、デバイス100はまた、マイクロホン113を通して、一部の機能をアクティブ化し、又は非アクティブ化するための口頭入力を受け付ける。また、デバイス100は、タッチ感知ディスプレイ112への接触の強度を検出するための1つ以上の接触強度センサ165及び/又はデバイス100のユーザの触覚出力を生成するための1つ以上の触知出力生成器167を、任意選択的に含む。
図3は、一部の実施形態による、ディスプレイ及びタッチ感知面を備える例示的な多機能デバイスのブロック図である。デバイス300は、ポータブルでなくてもよい。いくつかの実施形態において、デバイス300は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、教育的デバイス(子供の学習玩具など)、ゲームシステム、又は制御デバイス(例えば、ホーム又は業務用コントローラ)である。デバイス300は、典型的には、1つ以上の処理ユニット(CPU)310と、1つ以上のネットワーク又は他の通信インタフェース360と、メモリ370と、及びこれらの構成要素を相互接続するための1つ以上の通信バス320とを含む。通信バス320は、システム構成要素間の通信を相互接続及び制御する回路(チップセットと称することがある)を、任意選択的に含む。デバイス300は、タッチ感知ディスプレイ340を備える入出力(I/O)インタフェース330を含む。I/Oインタフェース330はまた、仮想キーボード350も備える。I/Oインタフェース330はまた、マウス(又は他のポインティングデバイス352)及びタッチパッド355、デバイス300上に触知出力を生成するための(例えば、図1Aを参照して上述された触知出力生成器(単数又は複数)167と同様の)触知出力生成器357、センサ359(例えば、光センサ、加速度センサ、近接センサ、タッチ感知センサ、並びに/又は図1Aを参照して上述された接触強度センサ(単数又は複数)165と同様の接触強度センサ)も、任意選択的に含む。メモリ370は、DRAM、SRAM、DDR RAM、又は他のランダムアクセス半導体メモリデバイスなどの、高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性半導体記憶デバイスなどの、不揮発性メモリを含む。メモリ370は、CPU(単数又は複数)310からは離れて位置する1つ以上の記憶デバイスを、任意選択的に含む。いくつかの実施形態では、メモリ370は、ポータブル多機能デバイス100(図1A)のメモリ102に記憶されたプログラム、モジュール、及びデータ構造に類似するプログラム、モジュール、及びデータ構造、又はそれらのサブセットを記憶する。更に、メモリ370は、ポータブル多機能デバイス100のメモリ102内に存在しない追加プログラム、モジュール、及びデータ構造を記憶し得る。例えば、デバイス300のメモリ370は、描画モジュール380、プレゼンテーションモジュール382、ワードプロセッシングモジュール384、ウェブサイト作成モジュール386、ディスクオーサリングモジュール388、及び/又はスプレッドシートモジュール390を、任意選択的に記憶するが、ポータブル多機能デバイス100(図1A)のメモリ102は、これらのモジュールを、任意選択的に記憶しない。
上記で特定された図3の要素のそれぞれは、任意選択的に、前述のメモリデバイスのうちの1つ以上に記憶される。上記で識別されたモジュールうちのそれぞれは、上述した機能を実行する命令セットに対応する。上述の識別されたモジュール又はプログラム(すなわち、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実施される必要はなく、したがって、様々な実施形態において、これらのモジュールの様々なサブセットを、任意選択的に、組み合わされるか、又は別の方法で再配置される。いくつかの実施形態において、メモリ370は、上述の識別されたモジュール及びデータ構造のサブセットを、任意選択的に記憶する。更に、メモリ370は、上述されていない追加のモジュール及びデータ構造を、任意選択的に記憶する。
ここで、ポータブル多機能デバイス100上に任意選択的に実装される、ユーザインタフェース(「UI」)の実施形態に注意を向ける。
図4は、いくつかの実施形態による、ポータブル多機能デバイス100上のアプリケーションのメニューに関する、例示的なユーザインタフェースを示す。同様のユーザインタフェースがデバイス300上に任意選択的に実装され得る。いくつかの実施形態では、ユーザインタフェース400は、以下の要素、又はそれらのサブセット若しくはスーパーセットを含む。
・セルラー及びWi−Fi信号などの無線通信(単数又は複数)のための信号強度標識(単数又は複数)402、
・時間404、
・Bluetooth(登録商標)標識405、
・バッテリ状態標識406、
・下記などの、頻繁に利用されるアプリケーション用のアイコンを含むトレー408、
○不在着信又は音声メールメッセージの数の標識414を任意選択的に含む、「電話」とラベル付けされる、電話モジュール138用のアイコン416、
○未読電子メールの数の標識410を任意選択的に含む、「メール」とラベル付けされた、電子メールクライアントモジュール140用のアイコン418、
○「ブラウザ」とラベル付けされる、ブラウザモジュール147用のアイコン420、及び
○「iPod(登録商標)」とラベル付けされる、iPod(Apple Inc.の商標)モジュール152とも称されるビデオ及び音楽プレーヤモジュールモジュール152用のアイコン422、並びに
・下記などの、その他のアプリケーション用のアイコン、
○「メッセージ」とラベル付けされる、IMモジュール141用のアイコン424、
○「カレンダー」とラベル付けされる、カレンダーモジュール148用のアイコン426、
○「写真」とラベル付けされる、画像管理モジュール144用のアイコン428、
○「カメラ」とラベル付けされる、カメラモジュール143用のアイコン430、
○「オンラインビデオ」とラベル付けされる、オンラインビデオモジュール155用のアイコン432、
○「株式」とラベル付けされる、株式ウィジェット149−2用のアイコン434、
○「地図」とラベル付けされる、地図モジュール154用のアイコン436、
○「気象」とラベル付けされる、気象ウィジェット149−1用のアイコン438、
○「時計」とラベル付けされる、アラーム時計ウィジェット149−4用のアイコン440、
○「フィットネスサポート」とラベル付けされる、フィットネスモジュール142用のアイコン442、
○「メモ」とラベル付けされる、メモモジュール153用のアイコン444、及び
○デバイス100及びその様々なアプリケーション136に関する設定へのアクセスを提供する、設定アプリケーション若しくはモジュール用のアイコン446。
図4に示されているアイコンのラベルは、単に例示的であることを留意されたい。例えば、いくつかの実施形態では、ビデオ及び音楽プレーヤモジュール152用のアイコン422は、「音楽」又は「音楽プレーヤ」とラベル付けされる。他のラベルが、様々なアプリケーションアイコンのために、任意選択的に使用される。いくつかの実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。いくつかの実施形態において、特定のアプリケーションアイコンのラベルは、特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
更に加えて、以下の説明は、主に指入力(例えば、指の接触、指のタップジェスチャ、指のスワイプジェスチャなど)を参照して説明されるが、いくつかの実施形態では、それらの指入力のうちの1つ以上は、別の入力デバイスからの入力(例えば、マウスに基づく入力又はスタイラス入力)で取って代わられることを理解されたい。例えば、スワイプジェスチャは、任意選択的に、(例えば、接触の代わりに)マウスクリックと置換され、その後、(例えば、接触の移動の代わりに)スワイプの経路に沿ってカーソルの移動が行われる。別の実施例として、タップジェスチャは、(例えば、接触の検出に続いて接触の検出を停止する代わりに)カーソルがタップジェスチャの位置上に配置される間、任意選択的にマウスクリックと置換される。同様に、複数のユーザ入力が同時に検出される時、複数のコンピュータマウスが同時に、任意選択的に用いられ、又はマウスと指接触が同時に用いられることが理解されよう。
本明細書で使用される時、用語「フォーカスセレクタ」とは、ユーザが対話しているユーザインタフェースの現在の部分を示す、入力要素を指す。カーソル又は他のロケーションマーカを含む実装において、カーソルは、タッチ感知面(例えば、図3のタッチパッド355)上で入力(例えば、押下げ入力)が検出された時に、カーソルが特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上にある時、「フォーカスセレクタ」として機能し、特定のユーザインタフェース要素が、検出された入力に従って調整される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な対話を可能にする、タッチスクリーンディスプレイ(例えば、図1Aのタッチ感知ディスプレイ112、又は図4のタッチスクリーン)を含むいくつかの実装では、タッチスクリーン上で検出される接触が「フォーカスセレクタ」の役割を果たすため、入力(例えば、接触による押圧入力)が、タッチスクリーンディスプレイ上の特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の場所で検出されると、その特定のユーザインタフェース要素が、検出された入力に従って調節される。いくつかの実装において、(例えば、タブキー又は矢印キーを使ったフォーカスの1つのボタンから別のボタンへの移動により)タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、フォーカスが、ユーザインタフェースの1つの領域からユーザインタフェースの別の領域に移動される。これらの実装において、フォーカスセレクタは、ユーザインタフェースの異なる領域間でのフォーカスの移動に従って移動する。フォーカスセレクタが取る特定のフォームに関係なく、フォーカスセレクタは、全体的に、ユーザのユーザインタフェースとの意図した(例えば、ユーザが対話したいと思っているユーザインタフェースの要素をデバイスに指示することによる)対話を伝達するように、ユーザによって制御されたユーザインタフェース要素(又は、タッチスクリーンディスプレイ上の接触)である。例えば、押下げ入力がタッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で検出された時にそれぞれのボタンの上にあるフォーカスセレクタ(例えば、カーソル、接触又は選択ボックス)の位置は、(デバイスのディスプレイ上に示されている他のユーザインタフェース要素とは反対に)ユーザが、それぞれのボタンをアクティブ化しようとしていることを指示する。
いくつかの実施形態では、デバイスにより検出された入力へのデバイスの応答は、入力中の接触強度に基づく評価基準に依存する。例えば、何回かの「ライトプレス」入力の場合、入力中の第1の強度閾値を上回る接触の強度は、第1の応答をトリガーする。いくつかの実施形態では、デバイスにより検出された入力へのデバイスの応答は、入力中の接触強度と時間ベースの評価基準の双方を含む評価基準に依存する。例えば、何回かの「ディーププレス」入力の場合、ライトプレスについての第1の強度閾値よりも大きい入力中の第2の強度閾値を上回る接触の強度が、第1の強度閾値を満たした後第2の強度閾値を満たすまでに遅延時間が経過した場合にのみ、第2の応答をトリガーする。この遅延時間は、典型的には、第2の強度閾値の大きさに応じて、継続期間において200ms未満(例えば、40、100、又は120ms)であり、遅延時間は第2の強度閾値が増大するにつれて増大する。この遅延時間は、偶発的なディーププレス入力を回避するのに役立つ。別の例として、何回かの「ディーププレス」入力の場合、第1の強度閾値を満たした時点の後に起こる感度低下時間期間がある。感度低下時間期間中、第2の強度閾値を増大させる。この一時的な第2の強度閾値の増大もまた、偶発的なディーププレス入力を回避するのに役立つ。他のディーププレス入力の場合、ディーププレス入力の検出への応答は、時間ベースの評価基準には依存しない。
いくつかの実施形態では、入力強度閾値及び/又は対応する出力のうちの1つ以上は、ユーザ設定、接触の動き、入力のタイミング、アプリケーションの実行、強度が適用される速度、同時入力の数、ユーザ履歴、環境要因(例えば、周囲の雑音)、フォーカスセレクタの位置などのような1つ以上の因子に基づいて変動する。例示的な因子は、全体として参照により本明細書に組み込まれる米国特許出願第14/399,606号及び同第14/624,296号に記載されている。
ユーザインタフェース及び関連プロセス
ここで、ユーザインタフェース(UI)、並びにディスプレイ、タッチ感知面、及びタッチ感知面との接触の強度を検出するための1つ以上のセンサを備える電子デバイス上で実装され得る、ポータブル多機能デバイス100又はデバイス300などの関連したプロセスの実施形態に注意を向ける。
複数のキーボード間でのトグル
図5A〜図5Fは、いくつかの実施形態に係る、複数のキーボード間でトグルするための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、図6A〜図6Bのプロセスを含めた、以下で説明されるプロセスを例示するために使用される。説明の便宜上、タッチ感知ディスプレイ112を備えるデバイス上で実行される動作を参照して、実施形態のうちのいくつかについて論じる。そのような実施形態では、フォーカスセレクタは、任意選択的に、それぞれの指又はスタイラスの接触、指又はスタイラスの接触に対応する代表的な点(例えば、それぞれの接触の面心若しくはそれぞれの接触に関連した点)、又は、タッチ感知ディスプレイ112上で検出された2つ以上の接触の面心である。
図5Aは、第1の言語(例えば、英語)と関連付けられたローマ字を表示する仮想キーを備える第1のキーボード502の文字/キー選択に応じてテキスト領域に文字が表示される実施形態を示す。この実施形態では、キーボードは、メモアプリケーションのグラフィカルユーザインタフェース上に表示された仮想キーボードである。ユーザは、メモアプリケーションのテキスト領域を選択し、それにより、ユーザのキーストローク入力が可能になる。テキスト領域のユーザ選択時には、仮想キーの選択は、文字500をテキスト領域に表示する。
また、第1のキーボードは、第1の特定キー504を含む。例えば、第1の特定キーは、Caps Lockキーとすることができる。いくつかの実施形態では、第1の特定キーは、所定の英数字キーである。いくつかの実施形態では、第1の特定キーはユーザ選択可能であり、例えば、ユーザは、第1の特定キーとして固有のキーを割り当てることができる。
図5Bは、専用のキーボードスイッチキーを選択することによってユーザが第2のキーボードを選択する実施形態を示す。いくつかの実施形態では、専用のキーボードスイッチキーは、地球儀のアイコンによって示される。例えば、図5Aは、専用のキーボードスイッチキーとして地球儀のアイコン505を表示する。ここで、地球儀のアイコンの選択後、ユーザによるキーボード選択オプションを提供するサブメニュー507が表示される。サブメニューは、同時に選択されるキーボードを含めて、利用可能な選択用キーボードを示す。この例では、ユーザは、サブメニューから、第2のキーボードとしてピンインキーボードを選択する。
図5Cは、第2のキーボードが第1の言語の文字と対応する第2のキーのセットを備えるが、出力された文字は、異なる第2の言語のものである実施形態を示す。この例では、ピンインキーボード(ローマ英字)からの文字選択に応じて、テキスト領域に中国語の文字が表示される。ピンインは、中国語の単語を英語で音声学的に書くこと可能するローマ字化システムをとして機能する。現在の実施形態は、キーボードのキーのセットについてローマ字を利用するためにピンインキーボードを提供する。ユーザは、中国語の単語を音声学的に綴るために、ローマ字化された英字を入力することができる。各ローマ字又は一連のローマ字は、漢字(単数又は複数)と関連付けられる。単語が完成すると、ローマ字化された英字は、対応する簡体字(単数又は複数)へと自動的に変換される。この例に示すように、ピンインキーボードが、第2のキーボードとして選択される。第2のキーボードは、この例ではピンインである第2の言語と関連付けられた文字のセットに対応する(ローマ字の)第1のキーのセットを有する。次いで、ユーザは、中国語の単語を音声学的に綴るために、ローマ字化された英字の選択を行う。ローマ字化された英字512は、メモアプリケーションのテキスト領域に出力される。ユーザがピンインでタイプした前の単語は、音声学的に英語でのそれぞれ対応する中国語の単語の綴りの完成時に、簡体字510へと自動的に変換されている。いくつかの実施形態では、示唆された中国語の単語は、ピンインの言語辞書及びオートコレクト機能に基づいて、キーボードの英数字キーの上方に設けられた行514に表示する。
この例では、第2のキーボードは、キーボードのアイコンを用いて示される第2の特定キー508を含む。いくつかの実施形態では、第2のキーボードの特定キーと第1のキーボードの特定キーとは、同じ場所を共有する。
図5Dは、第3のキーボード514からの文字選択に応じて第1の言語518の文字がテキスト領域に表示される実施形態を示す。第3のキーボードは、第1の言語(例えば、英語)と関連付けられた文字のセットに対応する第1のキーのセット(例えば、ローマ字)を有する。この例に示すように、以前に図5Cに示した第2のキーボードの第2の特定キー(508)の選択によって、第2のキーボード(図5C)と第3のキーボード(図5D)との間で言語を切り替えた。第2の特定キーは、第2のキーボードと第3のキーボードとの間でトグルする。第2の特定キーと同様に、第3のキーボード上の第3の特定キー516は、第3のキーボードと第2のキーボードとの間でのトグルを提供する。この例では、それぞれのキーボードの第1の特定キーと第2の特定キーと第3の特定キーとは全て、同じ場所を共有する。このトグル機能は、異なるそれぞれの言語を利用するキーボードと互いと併せて使用されるキーボードとの間での切り替えより迅速にする。
図5Eは、それぞれのオートコレクト辞書が、適用可能なキーボードについての対応する言語と関連付けられている例を示す。この例では、第3のキーボードは、図3の第1の言語134−1(例えば、英語)と関連付けられ、したがって、その言語のためのオートコレクト辞書は、図3のその言語134−2の単語(例えば、英単語)を示唆するために使用される。この例では、テキスト選択「bck」520は、関連付けられた英語辞書における認識された単語と一致しない。したがって、オートコレクト辞書は、テキスト選択「bck」を修正するための多くのオプション522を提供する。いくつかの実施形態では、オプションは、オートコレクト辞書と関連付けられた予測テキストアルゴリズムから発生する。
図5Fは、それぞれのオートコレクト辞書が、適用可能なキーボードについての対応する言語と関連付けられている別の例を示す。この例では、第2のキーボードは、図3の第2の言語134−1(例えば、ピンイン)と関連付けられ、したがって、その言語のためのオートコレクト辞書は、図3のその言語134−2(例えば、ピンイン)の単語を示唆するために使用される。この例では、テキスト選択「yun」524は、関連付けられたピンインの辞書における認識された単語と一致しない。したがって、オートコレクト辞書は、テキスト選択「yun」を修正するための多くのオプション526を提供する。ピンイン及び/又は簡体字の双方におけるオプションが考えられる。いくつかの実施形態では、オプションは、オートコレクト辞書と関連付けられた予測テキストアルゴリズムから発生する。
図6A〜図6Bは、いくつかの実施形態に係る、複数のキーボード間でトグルする方法600を示すフローチャートである。方法600は、ディスプレイ及びタッチ感知面を備える、電子デバイス(例えば、図3のデバイス300、又は、図1Aのポータブル多機能デバイス100)で実行される。いくつかの実施形態では、ディスプレイは、タッチスクリーンディスプレイであり、タッチ感知面は、ディスプレイ上に存在するか、あるいは、ディスプレイと統合されている(単に、タッチ感知ディスプレイ112とも称される、図1A)。
以下で説明するように、方法600は、しばしば一緒に使用される複数のキーボード間で、例えば、英語のキーボードとピンインのキーボードとの間でトグルする簡単な方法を提供する。
デバイスは、タッチ感知ディスプレイ上に第1のキーボードを表示し(602)、第1のキーボードは、第1の言語と関連付けられた文字のセットに対応する第1のキーのセットを有する。デバイスはまた、タッチ感知ディスプレイ上の場所に表示された第1の特定キーを表示し、第1の特定キーは、第1の機能と関連付けられている。第1のキーボードは、第1のキーのセットのいずれかの選択が、テキスト領域に、第1の言語に対応する1つ以上の文字を表示するように構成される。図5Aは、例えば、第1のキーボード502を示し、ローマ字のセットに対応する第1のキーのセットの選択は、英語である第1の言語で、テキスト領域500にテキストを出力する。この例では、第1の特定キーは、Caps Lockキーである。第1の特定キーは、第1の機能と関連付けられている。いくつかの実施形態では、第1の特定キー、この例ではCaps Lockキーは、Caps Lockキーの選択後に実行される任意の文字選択を大文字にする。
いくつかの実施形態では、第1、第2及び第3の特定キーのうちのいずれかは、選択されたそれぞれのキーボードのCaps Lockキー、シフトキー、又は書式設定機能キーのうちのいずれか1つである(604)。いくつかの言語(例えば、ピンイン)は大文字を利用しないので、特定の言語における大文字ロック又はシフトとして特定キー設定を有することが望ましいことがある。図5Aでは、第1の特定キーは、Caps Lockキーである。
いくつかの実施形態では、第1、第2及び第3の特定キーのうちのいずれかの選択は、タッチ感知ディスプレイ上での1回のタップ選択によって可能化される(606)。いくつかの実施形態では、特定キーの選択は、特定キー領域上での1回のタップ、プレス又はホールドに既定のタップ選択が割り当てられ得る。いくつかの実施形態では、それぞれの第2又は第3の特定キー上での高い強度又は力のプレスは、キーボード選択を第1のキーボードへのトグルを提供する。
いくつかの実施形態では、第1及び第2のキーのセットは、ローマ字を利用する(608)。図5A及び図5Cにおいて、第1のキーボード502の第1のキーのセットは、第1の言語(例えば、英語)と関連するローマ字に対応する。第2のキーボード502の第2のキーのセットは、第2の言語(例えば、ピンイン)と関連するローマ字に対応する。各ローマ字又は一連の文字は、表示される中国語の文字と関連付けられている。単語が完成すると、ローマ字化された英字は、簡体字へと自動的に変換される。例えば、図5Cは、「
」のローマ字化された文字選択を表示する。この文字選択は、音声学的に英語でのそれぞれの中国語の単語の綴りの完成時に簡体字へと変換される。例えば、図5Dは、「
」が、対応する中国語の文字と置換されることを示す。
いくつかの実施形態では、第1の言語は、第1のオートコレクト辞書と関連付けられ、第2の言語は、第2のオートコレクト辞書と関連付けられる(610)。例えば、図5Eは、キャラクタキーの上方の行内に提案が提供される、英語を用いて使用されるオートコレクト辞書、並びに認められていない文字列を保つためのオプションを示す。同様にして、図5Fの例は、ピンインの場合に使用されるオートコレクト辞書を示す。いくつかの実施形態では、オートコレクト辞書は、提案のみを提供する。いくつかの実施形態では、オートコレクト辞書は、所定のオートコレクトルールに基づいて、選択された文字列を自動的に修正する。
次に、デバイスは、キーボード選択キー(例えば、地球儀のキー)をユーザが選択することによって、第2のキーボードを表示するための選択を受信する(612)。いくつかの実施形態では、第2のキーボードを表示するための選択を受信することは、専用のキーボードスイッチキーの選択を受信することを更に含む(626)。例えば、図5Bは、ユーザが、専用のキーボードスイッチキー(例えば、地球儀のアイコン505によって示されるキー)を選択することによって、第2のキーボードを選択していることを示す。第2のキーボードは、第2の言語(例えば、ピンイン)と関連付けられた文字のセットに対応する(ローマ字の)第2のキーのセットを有する。地球儀のキーの選択後、サブメニューにより、第2のキーボード505−1の選択が可能になる。代替的には、ユーザは、次の利用可能なキーボードを順次選択するために、キーボード選択キーをタップする。
いくつかの実施形態では、デバイスは、第3のキーボードを表示するための第2の特定キーの選択を受信する(614)。例えば、図5Cにおいて、第2の特定キーは、キーボードトグルキーとして508で示される。この例におけるキーボードトグルキーの選択は、第2のキーボードから第3のキーボードにトグルする。
いくつかの実施形態では、デバイスは、第1の言語と関連付けられた文字のセットに対応する第3のキーのセットを有する第3のキーボードを表示する。デバイスはまた、その場所に設けられた第3の特定キーを表示し、第3の特定キーは、第2の特定キーと同じである(例えば、図5Dの第3の特定キー518は、図5Cの第2の特定キー508と同じ場所にある)。第3のキーボードは、キーのセットのいずれかの選択が、テキスト領域に、第1の言語に対応する1つ以上の文字を表示するように構成される(616)。例えば、図5Dにおいて、第1の言語、英語の文字518を表示するキーのセットを表示する第3のキーボード514が選択される。第3の特定キーは、518と示されている。いくつかの実施形態では、デバイスは、第2のキーボードを表示するための第3の特定キーの選択を受信する(618)。それに応じて、デバイスは次いで、第2のキーボードを表示する(620)。
いくつかの実施形態では、第2のキーボードと第3のキーボードとは、視覚的に同一である(622)。例えば、図5C及び図5Dにおいて、第2及び第3のキーボードはそれぞれ、それぞれの特定キーについての同じ場所と同一であるように示されている。
いくつかの実施形態では、第1のキーボードは、第1の特定キーを除いて、第2のキーボードと第3のキーボードの双方と視覚的に同一である(624)。例えば、図5C及び図5Dでは、第2及び第3のキーボードはそれぞれ、特定キーの同じ場所と同一であるように示されている。第1のキーボードは、特定キーとしてCaps Lockキーを使用するが、第1の特定キーの機能は、第1の機能(例えば、大文字を生成すること、他のプログラムされた機能を実行すること)と関連付けられる。いくつかの実施形態では、第1の特定キーは、第2及び第3の特定キーとは視覚的に異なる。例えば、図5Aの第1の特定キー504は、「Caps Lock」キーとして表示される。ただし、図5Aの第2特定キー508及び図5Cの第3の特定キー516はそれぞれ、キーボードアイコンとして表示される。
次に、デバイスは、タッチ感知ディスプレイ上に第2のキーボードを表示し、第2のキーボードは、第1の言語と関連付けられた文字のセットに対応する第2のキーのセットを有する。また、デバイスは、その場所に表示され、かつ、第1の機能とは異なる第2の機能と関連付けられた第2の特定キーを表示し、第2の機能は、第2のキーボード及び第3のキーボードを含むキーボード間でトグルする。例えば、図5Aの第1の特定キー504の第1の機能が大文字ロックであるに対し、図5Cの第2の特定キー508の第2の機能はキーボードトグルである。第2のキーボードは、第2のキーのセットのいずれかの選択が、テキスト領域に、第1の言語とは異なる第2の言語に対応する1つ以上の文字を表示するように構成される(628)。例えば、図5Cは、第2のキーボードと第3のキーボード間でトグルするように機能する第2の特定キー508を備える第2のキーボード506を示す。
いくつかの実施形態では、第2のキーのセットのいずれかの選択は、テキスト領域に、第2のキーボードの第2の言語に対応するピンイン文字を表示する(630)。例えば、図5Cでは、第2のキーボード506上の第2のキーのセットの選択は、ピンイン文字512を表示する。
図6A、6Bでの動作が説明されている特定の順序は、単なる例示であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを、意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作の再順序付けをする様々な方法を認識するであろう。加えて、本明細書に記載の他の方法に関して本明細書で記載されている他のプロセスの詳細(例えば、方法600、900、1200、1500は、また、図6A〜図6Bに関連して上述されている方法600に類似の方法でも適用可能であることを留意されたい。簡潔性のために、これらの詳細は、本明細書では繰り返さない。
いくつかの実施形態によれば、図7は、説明される様々な実施形態の理念に従って構成された電子デバイス700の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を遂行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図7で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に支持する。
図7に示すように、電子デバイス700は、ユーザインタフェースを表示するように構成されたディスプレイユニット702と、接触を受け取るように構成されたタッチ感知面ユニット704と、ディスプレイユニット702及びタッチ感知面ユニット704と結合された処理ユニット708とを含む。いくつかの実施形態では、処理ユニット708は、表示可能化ユニット710、及び受信ユニット712を含む。
処理ユニット708は、(例えば、表示可能化ユニット710を用いて)タッチ感知ディスプレイ上での第1のキーボードの表示を可能化するように構成され、第1のキーボードは、第1の言語と関連付けられた文字のセットに対応する第1のキーのセットを有する。第1のキーボードはまた、タッチ感知ディスプレイ上の場所に表示された第1の特定キーを有し、第1の特定キーは、第1の機能と関連付けられている。第1のキーボードは、第1のキーのセットのいずれかの選択が、テキスト領域に、第1の言語に対応する1つ以上の文字を表示するように構成される。処理ユニットは、(例えば、受信ユニット712を用いて)第2のキーボードの表示を可能化するための選択を受信するように更に構成される。選択を受信したことに応じて、処理ユニットは、(例えば、表示可能化ユニット710を用いて)タッチ感知ディスプレイ上での第2のキーボードの表示を可能化するように更に構成される。第2のキーボードは、第1の言語と関連付けられた文字のセットに対応する第2のキーのセットを備える。また、第2のキーボードは、その場所に表示され、かつ、第1の機能とは異なる第2の機能と関連付けられた第2の特定キーを備え、第2の機能は、第2のキーボード及び第3のキーボードを含むキーボード間でトグルする。第2のキーボードは、第2のキーのセットのいずれかの選択が、テキスト領域に、第1の言語とは異なる第2の言語に対応する1つ以上の文字を表示するように構成される。
いくつかの実施形態では、処理ユニット708は、(例えば、受信ユニット712を用いて)第3のキーボードを表示するための第2の特定キーの選択を受信するように更に構成される。次いで、選択を受信したことに応じて、(例えば、表示可能化ユニット710を用いて)第3のキーボードの表示を可能化する。第3のキーボードは、第1の言語と関連付けられた文字のセットに対応する第3のキーのセットと、その場所に設けられた第3の特定キーとを備える。第3の特定キーは、第2の特定キーと同じであり、第3のキーボードは、キーのセットのいずれかの選択が、テキスト領域に、第1の言語に対応する1つ以上の文字を表示するように構成される。
いくつかの実施形態では、処理ユニット708は、(例えば、受信ユニット712を用いて)第2のキーボードを表示するための第3の特定キーの選択を受信するように更に構成される。次いで、選択を受信したことに応じて、(例えば、表示可能化ユニット710を用いて)第2のキーボードの表示を可能化する。
いくつかの実施形態では、第1、第2及び第3の特定キーのうちのいずれかは、タッチ感知ディスプレイ704上の選択されたそれぞれのキーボードのCaps Lockキー、シフトキー、又は書式設定機能キーのうちのいずれか1つである。
いくつかの実施形態では、第1、第2及び第3の特定キーのうちのいずれかの選択は、タッチ感知ディスプレイ704上での1回のタップ選択によって可能化される。
いくつかの実施形態では、第2のキーボード及び第3のキーボードは、タッチ感知ディスプレイ704上において視覚的に同一である。
いくつかの実施形態では、第1のキーボードは、タッチ感知ディスプレイ704上において、第1の特定キーを除けば、第2のキーボード及び第3のキーボードに視覚的に同一である。
いくつかの実施形態では、タッチ感知ディスプレイ704上において、第1の言語は、第1のオートコレクト辞書と関連付けられ、第2の言語は、第2のオートコレクト辞書と関連付けられる。
いくつかの実施形態では、第1及び第2のキーのセットは、タッチ感知ディスプレイ704上でローマ字を利用する。
いくつかの実施形態では、第2のキーボードを表示するための選択を受信することにより、処理ユニット708に(例えば、受信ユニット712を用いて)専用のキーボードスイッチキーの選択を受信するように更に構成させるようになる。
いくつかの実施形態では、第2のキーのセットのいずれかの選択は、テキスト領域に、タッチ感知ディスプレイ704上の第2のキーボードの第2の言語に対応するピンイン文字を表示する。
上述の情報処理方法での動作は、汎用プロセッサ(例えば、図1A及び図3に関連して上述されたようなもの)又は特定用途向けチップなどの、情報処理装置内の1つ以上の機能モジュールを稼働することによって、任意選択的に実施される。
図6A〜図6Bを参照して上述された動作は、図1A〜図1B又は図7に示される構成要素によって、任意選択的に実施される。例えば、表示動作602、受信動作612、表示動作628は、表示可能化ユニット710、受信ユニット712、及び表示可能化ユニット710によって、任意選択的に実施される。イベントソータ170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配信する。アプリケーション136−1の対応のイベント認識部180は、そのイベント情報を対応のイベント定義186と比較し、タッチ感知面上の第1の場所での第1の接触(又は、デバイスの回転)が、ユーザインタフェース上のオブジェクトの選択、又は1つの向きから別の向きへのデバイスの回転などの、既定のイベント又はサブイベントに対応するか否かを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベントハンドラ190をアクティブ化させる。イベントハンドラ190は、アプリケーション内部状態192を更新するために、データアップデーター176若しくはオブジェクトアップデーター177を、任意選択的に用いるか又は呼び出す。いくつかの実施形態において、イベントハンドラ190は、アプリケーションにより表示されるものを更新するためのそれぞれのGUIアップデーター178にアクセスする。同様に、当業者にとって、他の処理が図1A〜図1Bに示される構成要素に基づいてどのように実施されるかは明らかであるだろう。
追加のキーボードオプションの提供
図8A〜図8Iは、いくつかの実施形態に係る、追加のキーボードオプションを提供するための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、図9A、9Bのプロセスを含めた、以下で説明されるプロセスを例示するために使用される。説明の便宜上、タッチ感知ディスプレイ112を備えるデバイス上で実行される動作を参照して、実施形態のうちのいくつかについて論じる。そのような実施形態では、フォーカスセレクタは、任意選択的に、それぞれの指又はスタイラスの接触、指又はスタイラスの接触に対応する代表的な点(例えば、それぞれの接触の面心若しくはそれぞれの接触に関連した点)、又は、タッチ感知ディスプレイ112上で検出された2つ以上の接触の面心である。
図8Aは、キーボードオプション806の行が、仮想キーボード802で行われた文字804の選択に対応する実施形態を示す。行は、限定はしないが、書式設定オプション、絵文字及び予測テキストを含む追加のキーボードオプションを提供する。この例では、行われた文字選択は、「brwn」であり、その結果、英数字キーの上方の提示されたキーボードオプションの行に3つのオプションが表示される。3つのオプション全てがキーボードオプションの行内に収まることができ、したがって、この例では、追加のキーボードオプションを提供するアフォーダンスは提供されない。いくつかの実施形態では、キーボードオプションは、サードパーティアプリケーションと双方向作用するための機能である。いくつかの実施形態では、キーボードオプションは、ユーザの好み及び振る舞いに基づく。いくつかの実施形態では、1つ以上の追加のキーボードオプションは、文字選択毎に選択可能な状態を維持する(例えば、文字選択に関係なくオプションが永続的に表示される)。いくつかの実施形態では、行は、英数字キーの上方に設けられる。いくつかの実施形態では、行は、英数字キーの下方に設けられる。いくつかの実施形態では、行は、英数字キーの直ぐ隣に設けられる。
図8Bは、文字804の選択に対応するキーボードオプションの行が、行808内の追加のキーボードオプションのアフォーダンスと共に仮想キーボード上に作成される実施形態を示す。文字の選択に対応するキーボードオプションの数が、行の利用可能なスペースを上回るので、追加のキーボードオプションのアフォーダンスが行に表示される。追加のキーボードオプションのアフォーダンスは、より多くのオプションが、その時点で行に示されたオプション以上に利用可能であるという示唆を提供する。この例では、アフォーダンスは、ドットの配列として提供される。
図8Cは、仮想キーボードで行われた文字804の選択に対応する追加のキーボードオプションのアフォーダンス808の選択810の実施形態を示す。この例では、タッチ感知ディスプレイの特定領域上での1回のタップ選択、ドットの配列の表示を表示する。いくつかの実施形態では、追加のキーボードオプションのアフォーダンスの選択は、追加のキーボードオプションのアフォーダンスの領域上での、1回のタップ、プレス又はホールドについて、既定のタップ選択が割り当てられ得る。
図8Dは、タッチ感知ディスプレイ上における1つ以上のキーボードのオプションの行におけるスクロールジェスチャ812の受信時の追加のキーボードのオプションにわたるタッチスクロールの一実施形態を示す。追加のキーボードオプションのアフォーダンス808の可用性は、ユーザに、スクロールジェスチャを使用してキーボードオプションをスクロールし得ることを示す。いくつかの実施形態では、スクロールジェスチャの速度は、キーボードオプションがスクロールされる速度を増大させる。いくつかの実施形態では、スクロールジェスチャは、ドットの配列808を表示する特定領域全体にわたる。いくつかの実施形態では、スクロールジェスチャは、キーボードオプションを表示する領域(例えば、文字の上方の行)全体のどこでもよい。
図8Eは、文字選択804に基づく追加のキーボードオプションのアフォーダンスの選択に応じて、追加のキーボードオプション814を表示する実施形態を示す。表示された追加のキーボードオプション「brow」、「bran」及び「grown」は、「brwn」「brown」及び「browned」を表示した前述の図8Dに示すような以前に示したキーボードオプションとは異なる。この例では、3つの追加のキーボードオプションがある。いくつかの実施形態では、追加のキーボードオプションの量は、より多くの数のオプションに限定され得る。
図8Fは、文字選択804に基づく追加のキーボードオプションのアフォーダンスの選択に応答した追加のキーボードオプションの実施形態を示す。この例では、更なるキーボードオプションのアフォーダンス818を考慮するために、追加のキーボードオプションが行816中でわずかにシフトしている。いくつかの実施形態では、更なるキーボードオプションのアフォーダンスの選択は、以前に表示されたオプションを除去し、更なる追加のキーボードオプションを表示する。次順のレベルのキーボードオプションのアフォーダンス及び対応するキーボードオプションを選択するこのプロセスは、文字選択のために利用可能なキーボードオプションの量について反復され得る。
図8Gは、キーボードオプション822のうちの1つが、文字選択820と関連付けられた絵文字824である実施形態を示す。この例では、「happy」の文字選択は、「happier」、「content」、及び幸せ(happy)な顔を表す絵文字のキーボードオプションを提供する。絵文字が文字選択と関連付けられている。この例では、追加のキーボードオプションのアフォーダンス826は、追加のキーボードオプションが利用可能であることを示す。
図8Hは、文字選択820と関連付けられた書式設定機能828を提供するキーボードオプションのうちの1つの実施形態を示す。この例では、文字選択は、「happy」であり、対応するためのオプションは、太字「B」で示される太字機能、イタリック文字「I」で示されるイタリック化機能、及び、下線付き文字「U」で示される下線機能などの書式設定機能を含む。いくつかの実施形態では、書式設定機能として、限定はしないが、フォント/色操作、スペーシング操作、及びコピー/カットアンドペースト機能が挙げられる。
図8Iは、文字選択820と関連して、サードパーティアプリケーション又はサードパーティアプリケーション内の機能を喚起するためのサードパーティアフォーダンス830を提供するキーボードオプションのうちの1つの例を示す。例えば、デバイスは、サードパーティアプリケーションに文字選択をコピーするためのオプションを提供する。この例では、文字選択は、「happy」であり、キーボードオプションにおいて選択される又はその中に含まれる対応するサードパーティアプリケーションは、電子メール連携である。この例では、キーボードオプションは、サードパーティアプリケーション(例えば電子メール)に文字選択をコピーすることを提供する。
図9A〜図9Bは、いくつかの実施形態に係る、仮想キーボードに追加のキーボードオプションを提供するための方法900を示すフローチャートである。方法900は、ディスプレイ及びタッチ感知面を備える、電子デバイス(例えば、図3のデバイス300、又は、図1Aのポータブル多機能デバイス100)で実行される。いくつかの実施形態では、このディスプレイは、タッチスクリーンディスプレイであり、タッチ感知面は、ディスプレイ上に存在するか、あるいは、ディスプレイと統合されている(単に、タッチ感知ディスプレイとも称される)。方法900の一部の動作が、任意選択的に組み合わされ、及び/又は、一部の動作の順序が、任意選択的に変えられる。
後述するように、方法900は、仮想キーボードに追加のキーボードオプションを提供するための簡単なやり方を提供する。
デバイスは、英数字キーと、英数字キーの上方又は下方に設けられた1つ以上のキーボードオプションの行とを備える仮想キーボードを表示する(902)。図8Aは、例えば、仮想キーボード802と、英数字キー806の上方に設けられた1つ以上のキーボードオプションの行とを表示する。いくつかの実施形態では、テキスト入力領域は、英数字キーと1つ以上のキーボードオプションの行との間にあることがある。
次に、デバイスは、追加のキーボードオプションが利用可能であると判定する(904)。図8Bは、例えば、デバイスが、「brwn」という文字選択の結果、「brown」又は「browned」として、1つ以上のキーボードオプションの行に示される予測テキストオプションを生じると判定することを提供する。1つ以上のキーボードオプションが行のスペースを超えた時には追加のキーボードオプションが利用可能である。
いくつかの実施形態では、追加のキーボードオプションは、予測テキスト入力、絵文字、頻繁に使用される入力、及び書式設定機能からなる群から選択されるアフォーダンスを備える(906)。図8Gは、例えば、キーボードオプションが、文字選択820に応じて選択するように、絵文字824幸せな顔を提供することを示す。図8Hは、例えば、キーボードオプションが、文字選択820と関連付けられる書式設定機能828、すなわち、太字、イタリック及び下線を提供することを示す。
いくつかの実施形態では、追加のキーボードオプションは、サードパーティアプリケーションについてのアフォーダンスを提供する(908)。図8Iは、例えば、追加のキーボードオプションが、文字選択820に基づいて電子メール機能830を提供することを示す。
次に、デバイスは、追加のキーボードオプションが利用可能であるという判定に従って、行内に追加のキーボードオプションのアフォーダンスを表示することを決定する(910)。図8Bは、例えば、追加のキーボードオプションが行の利用可能なスペースを超えており、したがって、追加のキーボードオプションのアフォーダンス808が行内に表示されることを示す。いくつかの実施形態では、追加のキーボードオプションのアフォーダンスは、その行の上方又は下方のいずれかの行に隣接して表示される。いくつかの実施形態では、追加のキーボードオプションのアフォーダンスは、その行から離れた別個の場所に設けられる。
いくつかの実施形態では、追加のキーボードオプションのアフォーダンスは、第1のドットの配列を備える(912)。図8Bは、例えば、ドットの配列808として行内に表示された追加のキーボードオプションのアフォーダンスを示す。いくつかの実施形態では、追加のキーボードオプションのアフォーダンスは、「タング」のような引っ張られるアフォーダンスを備える。
いくつかの実施形態では、デバイスは、追加のキーボードオプションが行の利用可能なスペースを超えるかどうかを判定する(914)。この判定に応じて、デバイスは、更なるキーボードオプションのアフォーダンスを表示する(916)。図8Fは、例えば、追加のキーボードオプションが、更なるキーボードオプションのアフォーダンス818が示す利用可能なスペースを超えており、これを選択すると更に追加のキーボードオプションが提供されることを示す。いくつかの実施形態では、更なるキーボードオプションのアフォーダンスは、第2のドットの配列を備える(918)。図8Fは、例えば、第2のドットの配列として、更なるキーボードオプションのアフォーダンス818を示す。
いくつかの実施形態では、デバイスは、1つ以上のキーボードオプションの行におけるスクロールジェスチャを受信する(920)。図8Dは、例えば、文字選択804に基づく1つ以上のキーボードオプション812の行におけるスクロールジェスチャを示す。スクロールジェスチャを受信したことに応じて、デバイスは、1つ以上のキーボードオプションを表示することを中止し、この1つ以上のキーボードオプションとは異なる追加のキーボードオプションのうちの少なくともいくつかを行に表示する(922)。
次に、追加のキーボードオプションのアフォーダンスの選択が検出されると、デバイスは、1つ以上のキーボードオプションのうちの少なくともいくつかを表示することを中止し、追加のキーボードオプションのうちの少なくともいくつかを行に表示する。図8Cは、例えば、追加のキーボードオプションのアフォーダンスの選択810が検出されることを提供する。現在のキーボードオプションは、「brwn」、「brown」及び「browned」である。図8Eは、例えば、図8Cに続いて、行に追加のキーボードオプション814、すなわち、「brow」、「bran」及び「grown」が、「brwn」、「brown」及び「browned」の以前のオプションを表示することを中止することを示す。
図9A〜図9Bにおける動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で説明される動作の再順序付けをする様々な方法を認識するであろう。加えて、本明細書に記載の他の方法に関して本明細書で記載されている他のプロセスの詳細(例えば、方法600、900、1200、1500は、また、図9A〜図9Bに関連して上述されている方法900に類似の方法でも適用可能であることを留意されたい。簡潔性のために、これらの詳細は、本明細書では繰り返さない。
いくつかの実施形態によれば、図10は、説明される様々な実施形態の理念に従って構成された電子デバイス1000の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を遂行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図10で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に支持する。
図10に示すように、電子デバイス1000は、ユーザインタフェースを表示するように構成されたディスプレイユニット1002と、接触を受け取るように構成されたタッチ感知面ユニット1004と、ディスプレイユニット1002及びタッチ感知面ユニット1004と結合された処理ユニット1008とを含む。いくつかの実施形態では、処理ユニット1008は、表示可能化ユニット1010、判定ユニット1012、検出ユニット1014、中止ユニット1016、及び受信ユニット1018を含む。
処理ユニット1008は、英数字キーと、英数字キーの上方又は下方に設けられた1つ以上のキーボードオプションの行とを備える仮想キーボードの(例えば、表示可能化ユニット1010を用いた)表示を可能化するように構成される。処理ユニットは、(例えば、判定ユニット1012を用いて)追加のキーボードオプションが利用可能であることを判定するように更に構成される。追加のキーボードオプションが利用可能であるという判定に従って、処理ユニットは、(例えば、表示可能化ユニット1010を用いて)行内での追加のキーボードオプションのアフォーダンスの表示を可能化するように更に構成される。(例えば、検出ユニット1014を用いて)追加のキーボードオプションアフォーダンスの選択を検出すると、処理ユニットは、(例えば、中止ユニット1016を用いて)1つ以上のキーボードオプションのうちの少なくともいくつかの表示を可能化することを中止し、行における追加のキーボードオプションのうちの少なくともいくつかの表示を可能化するように更に構成される。
いくつかの実施形態では、追加のキーボードオプションのアフォーダンスは、タッチ感知ディスプレイ1004上に第1のドットの配列を備える。
いくつかの実施形態では、処理ユニット1008は、(例えば、判定ユニット1012を用いて)追加のキーボードオプションが行の利用可能なスペースを超えるかどうか判定するように更に構成される。追加のキーボードオプションが行の利用可能なスペースを超えると判定したことに応じて、処理ユニットは、(例えば、表示可能化ユニット1010を用いて)更なるキーボードオプションのアフォーダンスの表示を可能化するように更に構成される。
いくつかの実施形態では、更なるキーボードオプションのアフォーダンスは、タッチ感知ディスプレイ1004上に第2のドットの配列を備える。
いくつかの実施形態では、処理ユニット1008は、(例えば、受信ユニット1018を用いて)1つ以上のキーボードオプションの行におけるスクロールジェスチャを受信するように更に構成される。スクロールジェスチャを受信したことに応じて、処理ユニットは、1つ以上のキーボードオプションの表示を可能化することを(例えば、中止ユニット1016を用いて)中止し、行における追加のキーボードオプションのうちの少なくともいくつかの表示を(例えば、表示可能化ユニット1010を用いて)可能化するように更に構成される。追加のキーボードオプションは、前記1つ以上のキーボードオプションとは異なる。
いくつかの実施形態では、タッチ感知ディスプレイ1004上のキーボードオプションのうちのいずれか及び追加のキーボードオプションは、予測テキスト入力、絵文字、頻繁に使用される入力、及び書式設定機能からなる群から選択されるアフォーダンスを備える。
いくつかの実施形態では、キーボードオプションのうちのいずれか及び追加のキーボードオプションは、タッチ感知ディスプレイ1004上にサードパーティアプリケーションについてのアフォーダンスを提供する。
上述の情報処理方法での動作は、汎用プロセッサ(例えば、図1A及び図3に関連して上述されたようなもの)又は特定用途向けチップなどの、情報処理装置内の1つ以上の機能モジュールを稼働することによって、任意選択的に実施される。
図9A〜図9Bを参照して上述された動作は、図1A〜図1B又は図10に示される構成要素によって、任意選択的に実施される。例えば、表示動作902、判定動作904、表示動作910、受信動作920、中止動作922は、表示可能化ユニット1010、判定ユニット1012、表示可能化ユニット1010、受信ユニット1018、中止ユニット1016により、任意選択的に実施される。イベントソータ170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配信する。アプリケーション136−1の対応のイベント認識部180は、そのイベント情報を対応のイベント定義186と比較し、タッチ感知面上の第1の場所での第1の接触(又は、デバイスの回転)が、ユーザインタフェース上のオブジェクトの選択、又は1つの向きから別の向きへのデバイスの回転などの、既定のイベント又はサブイベントに対応するか否かを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベントハンドラ190をアクティブ化させる。イベントハンドラ190は、アプリケーション内部状態192を更新するために、データアップデーター176若しくはオブジェクトアップデーター177を、任意選択的に用いるか又は呼び出す。いくつかの実施形態において、イベントハンドラ190は、アプリケーションにより表示されるものを更新するためのそれぞれのGUIアップデーター178にアクセスする。同様に、当業者にとって、他の処理が図1A〜図1Bに示される構成要素に基づいてどのように実施されるかは明らかであるだろう。
仮想キーボードモードの選択
図11A〜図11Eは、いくつかの実施形態に係る、仮想キーボードモードを選択するための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、図12のプロセスを含めた、以下で説明されるプロセスを例示するために使用される。説明の便宜上、タッチ感知ディスプレイ112を備えたデバイス上で実行される動作を参照して、実施形態のうちのいくつかについて論じる。
図11Aは、専用のマルチキーボードキー1104を備える第1の仮想キーボード1102を表示する実施形態を示す。この例では、第1の仮想キーボードは、タッチ感知ディスプレイの幅全体を占めている。この例では、第1の仮想キーボードは、第1の言語(例えば、英語)と関連付けられたローマ字に対応する第1のキーのセットを備える。いくつかの実施形態では、第1の仮想キーボードは、英語以外の言語のものでもよく、ローマ字以外の文字を利用してもよい。
図11Bは、第2の仮想キーボード1106及び別個のユーザ入力領域1108の実施形態を示す。この例では、別個のユーザ入力領域は、数字及び他の動作の複数の仮想キーを備えた数字パッドである。第2の仮想キーボード及び別個のユーザ入力領域は、1104で示された図11Aの専用のマルチキーボードキーの選択を検出すると表示され、第1の仮想キーボードの表示が中止される。この例では、第2の仮想キーボードの幅は、第1の仮想キーボードの幅の2/3である。更に、数字パッドの幅は、第1の仮想キーボード幅の1/3である。
図11Cは、第2の仮想キーボード1110、及び第1の言語(例えば、ギリシャ語)と関連付けられたギリシャ文字に対応する複数の仮想キーを備える第3の仮想キーボード1112としての別個のユーザ入力領域の実施形態を示す。第2の仮想キーボード及び第3の仮想キーボードは、1104で示された図11Aの専用のマルチキーボードキーの選択を検出すると表示され、第1の仮想キーボードの表示が中止される。この例では、第2の仮想キーボード及び第3の仮想キーボードの幅は共に、第1の仮想キーボードの幅の1/2である。
図11Dは、第2の仮想キーボード1114、及び絵文字を出力する絵文字を利用する複数の仮想キーを備える第3の仮想キーボード1116としての別個のユーザ入力領域の実施形態を示す。第2の仮想キーボード及び第3の仮想キーボードは、1104で示された図11Aの専用のマルチキーボードキーの選択を検出すると表示され、第1の仮想キーボードの表示が中止される。この例では、第2の仮想キーボードの幅は、第1の仮想キーボードの幅の2/3であり、第3の仮想キーボードの幅は、第1の仮想キーボードの幅の1/3である。
図11Eは、第2の仮想キーボード1118及び別個のユーザ入力領域1120の実施形態を示す。1104で示された図11Aの専用のマルチキーボードキーの選択を検出すると、第2の仮想キーボード及び別個のユーザ入力領域が、表示され、第1の仮想キーボードの表示が中止される。この例では、別個のユーザ入力領域は、複数の描画ツールを備える描画入力領域である。この例では、そのツールは、鉛筆、マーカー、ペン、消しゴム及び定規など、様々な種類のストローク機能を含む。いくつかの実施形態では、描画入力領域は、高度な画像編集ツールを提供する。いくつかの実施形態では、描画入力領域は、選択時に、その領域に既存の画像又は図面を先読み込みしてもよい。既存の画像は、描画入力領域において更に編集され得る。この例では、第2の仮想キーボードの幅は、第1の仮想キーボードの幅の2/3であり、描画入力領域の幅は、第1の仮想キーボードの幅の1/3である。
図12は、いくつかの実施形態に係る、仮想キーボードモードを選択するための方法1200を示すフローチャートである。方法1200は、ディスプレイ及びタッチ感知面を備える、電子デバイス(例えば、図3のデバイス300、又は、図1Aのポータブル多機能デバイス100)で実行される。いくつかの実施形態では、このディスプレイは、タッチスクリーンディスプレイであり、タッチ感知面は、ディスプレイ上に存在するか、あるいは、ディスプレイと統合されている(単に、タッチ感知ディスプレイとも称される)。
後述するように、方法1200は、仮想キーボードの仮想キーボードモードを提供するための簡単なやり方を提供する。
デバイスは、第1のサイズの領域を占める第1の複数の仮想キーを備える第1の仮想キーボードを表示する(1202)。1104で示された図11Aの専用のマルチキーボードキーの選択を検出すると、第2の仮想キーボード及び別個のユーザ入力領域が、表示され、第1の仮想キーボードの表示が中止される。第1の複数の仮想キーは、専用のマルチキーボードキーを含む。図11Aは、例えば、第1の仮想キーボード1102及び専用のマルチキーボードキー1104を表示する。いくつかの実施形態では、専用のキーボードキーは予め定義される。いくつかの実施形態では、専用のマルチキーボードキーは、特定キーに割り当てられる。いくつかの実施形態では、専用のマルチキーボードキーの選択は、専用のマルチキーボードキーの領域上での1回のタップ、プレス又はホールドによって選択され得る。
いくつかの実施形態では、第1のサイズの領域及び第2のサイズの領域は、高さ又は長さのうちの少なくとも1つを共通に有する(1204)。図11Bは、例えば、第2の仮想キーボード1106及び数字パッド1108が同じ高さ1109を有することを示す。
次に、専用のマルチキーボードキーの選択が検出されると、デバイスは、第1の仮想キーボードを表示することを中止し、第2の仮想キーボードを表示する。第2の仮想キーボードは、第2の複数の仮想キーを有し、デバイスはまた、第2の複数の仮想キーに隣接して別個のユーザ入力領域を表示し、第2の複数の仮想キーは、第1のサイズよりも小さい第2のサイズの領域を占める(1206)。図11Bは、例えば、第2の仮想キーボード1106が、数字パッドが第2の仮想キーボードに隣接した状態で表示され、(図11Aに示すような)第1の仮想キーボードの表示が停止される。
いくつかの実施形態では、別個のユーザ入力領域は数字パッドである(1208)。図11Bは、例えば、第2の仮想キーボード1106、及び数字パッドとしての別個のユーザ入力領域を示す。いくつかの実施形態では、数字パッドは、高度な数学関数を備える。いくつかの実施形態では、数字パッドは数学記号を備える。
いくつかの実施形態では、別個のユーザ入力領域は、第3の複数の仮想キーを備える第3の仮想キーボードである。第3の複数の仮想キーは、第2の仮想キーボードに対応する言語とは異なる言語に対応する(1210)。図11Cは、例えば、第2の仮想キーボード1110、及びギリシャ文字を備える仮想キーを表示する第3の仮想キーボード1112としての別個のユーザ入力領域を示す。いくつかの実施形態では、第2のキーボードと第3のキーボードの双方のための仮想キーはローマ字であり得るが、第3のキーボードの言語は、第2のキーボードとは異なってもよい(例えば、それぞれ英語及びピンイン)。
いくつかの実施形態では、別個のユーザ入力領域は、絵文字に対応する第3の複数のキーを備える第3の仮想キーボードである(1212)。図11Dは、例えば、第2の仮想キーボード1114、及び絵文字を表示する第3の仮想キーボード1116としての別個のユーザ入力領域を示す。いくつかの実施形態では、絵文字は、サードパーティアプリケーションから発生又はインポートされ得る。
いくつかの実施形態では、別個のユーザ入力領域は描画入力領域である(1214)。図11Eは、例えば、第2の仮想キーボード1118、及び描画ツールを含む描画入力領域1120としての別個のユーザ入力領域を示す。
いくつかの実施形態では、第2の仮想キーボードは、専用のマルチキーボードキーを備える(1216)。図11Cは、例えば、専用のマルチキーボードキー1113を備える第2の仮想キーボード1110を表示する実施形態を示す。
いくつかの実施形態では、第2の複数の仮想キーは、第1の複数の仮想キーよりも少ない(1218)。例えば、タッチ感知面の全長にわたる第1の複数の仮想キーは機能を向上させ、第1の複数の仮想キーの全てが、従来の切頭型キーボードと関連付けられていなくてもよい。
いくつかの実施形態では、第2の複数の仮想キーのそれぞれのサイズは、第1の複数の仮想キーのそれぞれのサイズよりも小さい(1220)。図11Cは、例えば、第2の仮想キーボード1110が、タッチ感知ディスプレイの長さにわたるフルキーボードの縮小バージョンであることを提供する。この例では、1102で示した図11Aに示される第1のキーボードと1110で示した図11Cの第2のキーボードとの間において、仮想キーは減っていない。
図12における動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で説明される動作の再順序付けをする様々な方法を認識するであろう。加えて、本明細書に記載の他の方法に関して本明細書で記載されている他のプロセスの詳細(例えば、方法600、900、1200、1500は、また、図12に関連して上述されている方法1200に類似の方法でも適用可能であることを留意されたい。簡潔性のために、これらの詳細は、本明細書では繰り返さない。
いくつかの実施形態によれば、図13は、説明される様々な実施形態の理念に従って構成された電子デバイス1300の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を遂行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図13で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に支持する。
図13に示すように、電子デバイス1300は、ユーザインタフェースを表示するように構成されたディスプレイユニット1302と、接触を受け取るように構成されたタッチ感知面ユニット1304と、ディスプレイユニット1302及びタッチ感知面ユニット1304と結合された処理ユニット1308とを含む。いくつかの実施形態では、処理ユニット1308は、表示可能化ユニット1310、検出ユニット1312、及び停止ユニット1314を含む。
処理ユニット1308は、(例えば、表示可能化ユニット1310を用いて)第1のサイズの領域を占める第1の複数の仮想キーを備える第1の仮想キーボードの表示を可能化するように構成される。第1の複数の仮想キーは、専用のマルチキーボードキーを含む。専用のマルチキーボードキーの選択を検出すると、処理ユニットは、(例えば、中止ユニット1314を用いて)第1の仮想キーボードの表示を可能化することを中止し、第2の仮想キーボードの表示を可能化するように更に構成される。第2の仮想キーボードは、第2の複数の仮想キー、及び第2の複数の仮想キーに隣接する別個のユーザ入力領域を備える。第2の複数の仮想キーは、第1のサイズよりも小さい第2のサイズの領域を占める。
いくつかの実施形態では、第1のサイズの領域及び第2のサイズの領域は、タッチ感知ディスプレイ1304上において高さ又は長さのうちの少なくとも1つを共通に有する。
いくつかの実施形態では、別個のユーザ入力領域は、タッチ感知ディスプレイ1304上の数字パッドである。
いくつかの実施形態では、別個のユーザ入力領域は、タッチ感知ディスプレイ1304上の第2の仮想キーボードに対応する言語とは異なる言語に対応する第3の複数の仮想キーを備える第3の仮想キーボードである。
いくつかの実施形態では、別個のユーザ入力領域は、タッチ感知ディスプレイ1304上の絵文字に対応する第3の複数のキーを備える第3の仮想キーボードである。
いくつかの実施形態では、別個のユーザ入力領域は、タッチ感知ディスプレイ1304上の描画入力領域である。
いくつかの実施形態では、第2の仮想キーボードは、タッチ感知ディスプレイ1304上に専用のマルチキーボードキーを備える。
いくつかの実施形態では、第2の複数の仮想キーは、タッチ感知ディスプレイ1304上の第1の複数の仮想キーよりも少ない。
いくつかの実施形態では、第2の複数の仮想キーのそれぞれのサイズは、タッチ感知ディスプレイ1304上の第1の複数の仮想キーのそれぞれのサイズよりも小さい。
上述の情報処理方法での動作は、汎用プロセッサ(例えば、図1A及び図3に関連して上述されたようなもの)又は特定用途向けチップなどの、情報処理装置内の1つ以上の機能モジュールを稼働することによって、任意選択的に実施される。
図12を参照して上述された動作は、図1A〜図1B又は図13に示される構成要素によって、任意選択的に実施される。例えば、表示動作1202、検出動作1206、中止動作1206、表示動作1206は、表示可能化ユニット1310、判定ユニット1312、表示可能化ユニット1310、中止ユニット1314、及び表示可能化ユニット1310により、任意選択的に実施される。イベントソータ170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配信する。アプリケーション136−1の対応のイベント認識部180は、そのイベント情報を対応のイベント定義186と比較し、タッチ感知面上の第1の場所での第1の接触(又は、デバイスの回転)が、ユーザインタフェース上のオブジェクトの選択、又は1つの向きから別の向きへのデバイスの回転などの、既定のイベント又はサブイベントに対応するか否かを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベントハンドラ190をアクティブ化させる。イベントハンドラ190は、アプリケーション内部状態192を更新するために、データアップデーター176若しくはオブジェクトアップデーター177を、任意選択的に用いるか又は呼び出す。いくつかの実施形態において、イベントハンドラ190は、アプリケーションにより表示されるものを更新するためのそれぞれのGUIアップデーター178にアクセスする。同様に、当業者にとって、他の処理が図1A〜図1Bに示される構成要素に基づいてどのように実施されるかは明らかであるだろう。
コンパクトな仮想キーボードの選択
図14A〜図14Fは、いくつかの実施形態に係る、コンパクトな仮想キーボードモードを選択するための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、図15のプロセスを含めた、以下で説明されるプロセスを例示するために使用される。説明の便宜上、タッチ感知ディスプレイ112を備えたデバイス上で実行される動作を参照して、実施形態のうちのいくつかについて論じる。
図14Aは、専用のマルチキーボードキー1404を備える仮想キーボード1402が表示される実施形態を示す。この例では、第1の仮想キーボードのサイズは、タッチ感知ディスプレイの幅全体にわたっている。この例では、第1の仮想キーボードは、第1の言語(例えば、英語)と関連付けられたローマ字に対応する第1のキーのセットを備える。いくつかの実施形態では、第1の仮想キーボードは、英語以外の言語のものでもよく、ローマ字以外の文字を利用してもよい。
図14Bは、タッチ感知ディスプレイ上でのピンチジェスチャの検出の例を示す。この例では、ユーザは、左人さし指1408がほぼ北西方向に動いて選択を行いながら、右人さし指1406がほぼ南東方向に動いて選択を行う状態で示されるように、2つの選択を互いに近づけてドラッグするためにタッチ感知ディスプレイ上での2つの選択を使用する。いくつかの実施形態では、これはピンチジェスチャとして知られており、片手を使用して行うことができる。いくつかの実施形態では、別個のジェスチャ、例えば、任意の方向におけるスリーフィンガースワイプを使用して、仮想キーボードの表示を中止してもよい。いくつかの実施形態では、専用のマルチキーボードキーの選択を使用して、仮想キーボードが、コンパクトな仮想キーボードを表示し、示すことを中止するまで、仮想キーボードを位置的に並進移動させてもよい。
図14Cは、指1410及び1412それぞれによって行われるピンチジェスチャに関して、サイズが縮小している仮想キーボード1414を示す。図14Bにおいて論じたように、指は、選択を互いに近づけるようにドラッグし続ける。この例では、仮想キーボードのサイズ縮小及び位置並進は、ドラッグ選択中に使用されるアニメーションである。
図14Dは、タッチ感知ディスプレイの縁部に設けられたコンパクトな仮想キーボード1416を示す。この例では、コンパクトな仮想キーボードは、標準的なキーボードよりも小さい。コンパクトな仮想キーボードは、再配置を可能にするためのアフォーダンス1418を提供する。いくつかの実施形態では、コンパクトな仮想キーボードは、仮想キーボードよりも少ない仮想キーを有する。いくつかの実施形態では、コンパクトな仮想キーボードの仮想キーの量は、仮想キーボードと同じである。
図14Eは、コンパクトな仮想キーボード1416に適用されたフリックジェスチャ1420を示す。この例では、フリックジェスチャは、コンパクトな仮想キーボードをスワイプする2本以上の指を必要とする。いくつかの実施形態では、フリックは最初に、小型仮想キーボード1418のアフォーダンスに係合しなければならない。いくつかの実施形態では、フリックの速度は、所定の速度しきい値を満たさなければならない。いくつかの実施形態では、ワンフィンガーフリックジェスチャのみが必要である。
図14Fは、タッチ感知ディスプレイの反対側の縁部に設けられた再配置されたコンパクトな仮想キーボード1422を示す。いくつかの実施形態では、フリックジェスチャは、コンパクトな仮想キーボードを水平方向に並進移動させるか、又は移動させることができる。いくつかの実施形態では、フリックジェスチャは、コンパクトな仮想キーボードを水平方向と垂直方向の双方に並進移動させるか、又は移動させることができる。
図15は、いくつかの実施形態に係る、仮想キーボードモードを選択するための方法1500を示すフローチャートである。方法1500は、ディスプレイ及びタッチ感知面を備える、電子デバイス(例えば、図3のデバイス300、又は、図1Aのポータブル多機能デバイス100)で実行される。いくつかの実施形態では、このディスプレイは、タッチスクリーンディスプレイであり、タッチ感知面は、ディスプレイ上に存在するか、あるいは、ディスプレイと統合されている(単に、タッチ感知ディスプレイとも称される)。
後述するように、方法1500は、仮想キーボードのコンパクトな仮想キーボードを選択するための簡単なやり方を提供する。
デバイスは、タッチ感知ディスプレイ上に仮想キーボードを表示する(1502)。図14Aは、例えば、タッチ感知ディスプレイの幅を有する仮想キーボード1402を表示する。
次に、デバイスは、仮想キーボードを表示することを中止し、タッチ感知ディスプレイの垂直方向縁部に隣接して設けられたコンパクトな仮想キーボードを表示する(1504)。コンパクトな仮想キーボードは、仮想キーボードよりも小さい。図14Dは、例えば、タッチ感知ディスプレイの左中間縁部に設けられたコンパクトな仮想キーボード1416を示す。
いくつかの実施形態では、タッチ感知ディスプレイの垂直方向縁部に隣接して設けられたコンパクトな仮想キーボードを表示することは、タッチ感知ディスプレイの垂直方向縁部に又はその近くに、コンパクトな仮想キーボードを表示することを含む(1506)。
いくつかの実施形態では、コンパクトな仮想キーボード上でアフォーダンスを選択し、ドラッグすることによって、コンパクトな仮想キーボードをタッチ感知ディスプレイの垂直方向縁部に沿って移動させることができる(1508)。図14Dは、例えば、コンパクトな仮想キーボード1416に付着したアフォーダンス1418を示す。いくつかの実施形態では、コンパクトな仮想キーボードは、垂直軸に沿って、タッチ感知面の縁部に沿って上下にドラッグされ得る。
いくつかの実施形態では、タッチ感知ディスプレイ上で、コンパクトな仮想キーボード上でのフリックジェスチャが検出されると、タッチ感知ディスプレイの垂直方向縁部から、タッチ感知ディスプレイの反対側の垂直方向縁部までコンパクトな仮想キーボードを移動させる(1510)。図14E及び図14Fは、例えば、キーボードをタッチ感知ディスプレイ1422の他の縁部に並進移動させるためにコンパクトな仮想キーボード1416に適用されたフリックジェスチャ1420を表示する。いくつかの実施形態では、フリックジェスチャの速度は、所定の速度しきい値よりも高くなければならない(1512)。いくつかの実施形態では、所定の速度しきい値が割り当てられる。いくつかの実施形態では、所定の速度しきい値はユーザ定義される。
いくつかの実施形態では、仮想キーボードを表示することを中止し、コンパクトな仮想キーボードを表示することは、コンパクトな仮想キーボードへと縮小する仮想キーボードをアニメーション化することを含む(1514)。図14B及び図14Cは、例えば、仮想キーボードが表示されなくなるまでの仮想キーボードの縮小及び位置並進を示す。
いくつかの実施形態では、コンパクトな仮想キーボード上での拡大ジェスチャが検出されると、コンパクトな仮想キーボードを表示することを中止し、仮想キーボードを表示する(1516)。
図15における動作について記載された特定の順序は単なる例示であり、記載された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で説明される動作の再順序付けをする様々な方法を認識するであろう。加えて、本明細書に記載の他の方法に関して本明細書で記載されている他のプロセスの詳細(例えば、方法600、900、1200、1500は、また、図15に関連して上述されている方法1500に類似の方法でも適用可能であることを留意されたい。簡潔性のために、これらの詳細は、本明細書では繰り返さない。
いくつかの実施形態によれば、図16は、説明される様々な実施形態の理念に従って構成された電子デバイス1600の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を遂行するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによって、任意選択的に実装される。図16で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に組み合わされ、又はサブブロックに分離されることが当業者には理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に支持する。
図16に示すように、電子デバイス1600は、ユーザインタフェースを表示するように構成されたディスプレイユニット1602と、接触を受け取るように構成されたタッチ感知面ユニット1604と、ディスプレイユニット1602及びタッチ感知面ユニット1604と結合された処理ユニット1608とを含む。いくつかの実施形態において、処理ユニット1608は、表示可能化ユニット1610、検出ユニット1612、中止ユニット1614、及び移動ユニット1616を含む。
処理ユニット1608は、(例えば、表示可能化ユニット1610を用いて)タッチ感知ディスプレイ上での仮想キーボードの表示を可能化するように構成される。ジェスチャの検出に応じて、処理ユニットは、(例えば、中止可能化ユニット1614を用いて)仮想キーボードの表示を可能化することを中止し、タッチ感知ディスプレイの垂直方向縁部に隣接して設けられたコンパクトな仮想キーボードの表示を可能化するように更に構成される。コンパクトな仮想キーボードは、仮想キーボードよりも小さい。
いくつかの実施形態では、タッチ感知ディスプレイ1604の垂直方向縁部に隣接して設けられたコンパクトな仮想キーボードの表示を可能化することは、タッチ感知ディスプレイの垂直方向縁部での又はその近くでのコンパクトな仮想キーボードの表示を可能化することを含む。
いくつかの実施形態では、コンパクトな仮想キーボード上でアフォーダンスを選択し、ドラッグすることによって、コンパクトな仮想キーボードをタッチ感知ディスプレイ1604の垂直方向縁部に沿って移動させることができる。
いくつかの実施形態では、処理ユニット1608は、タッチ感知ディスプレイ上で(例えば、検出ユニット1612を用いて)コンパクトな仮想キーボード上でのフリックジェスチャを検出すると、(例えば、移動ユニット1616を用いて)コンパクトな仮想キーボードを、タッチ感知ディスプレイの垂直方向縁部からタッチ感知ディスプレイ1604の反対側の垂直方向縁部まで移動させるように更に構成される。いくつかの実施形態では、フリックジェスチャの速度は、タッチ感知ディスプレイ1604の所定の速度しきい値よりも高い。
いくつかの実施形態では、仮想キーボードを表示することを中止し、コンパクトな仮想キーボードを表示することは、タッチ感知面1604上でコンパクトな仮想キーボードへと縮小する仮想キーボードをアニメーション化することを含む。
いくつかの実施形態では、処理ユニット1608は、(例えば、検出ユニット1612を用いて)コンパクトな仮想キーボード上の拡大ジェスチャを検出すると、(例えば、中止ユニット1614を用いて)コンパクトな仮想キーボードを表示することを中止し、仮想キーボードを表示するように更に構成される。
上述の情報処理方法での動作は、汎用プロセッサ(例えば、図1A及び図3に関連して上述されたようなもの)又は特定用途向けチップなどの、情報処理装置内の1つ以上の機能モジュールを稼働することによって、任意選択的に実施される。
図15を参照して上述された動作は、図1A〜図1B又は図16に示される構成要素によって、任意選択的に実施される。例えば、表示動作1502、中止動作1504、表示動作1506、検出動作1510、中止動作1514、及び検出動作1516は、表示可能化ユニット1610、中止ユニット1614、表示可能化ユニット1610、検出ユニット1612、中止ユニット1614、及び検出ユニット1612により、任意選択的に実施される。イベントソータ170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配信する。アプリケーション136−1の対応のイベント認識部180は、そのイベント情報を対応のイベント定義186と比較し、タッチ感知面上の第1の場所での第1の接触(又は、デバイスの回転)が、ユーザインタフェース上のオブジェクトの選択、又は1つの向きから別の向きへのデバイスの回転などの、既定のイベント又はサブイベントに対応するか否かを判定する。それぞれの既定のイベント又はサブイベントが検出されると、イベント認識部180は、イベント又はサブイベントの検出に関連するイベントハンドラ190をアクティブ化させる。イベントハンドラ190は、アプリケーション内部状態192を更新するために、データアップデーター176若しくはオブジェクトアップデーター177を、任意選択的に用いるか又は呼び出す。いくつかの実施形態において、イベントハンドラ190は、アプリケーションにより表示されるものを更新するためのそれぞれのGUIアップデーター178にアクセスする。同様に、当業者にとって、他の処理が図1A〜図1Bに示される構成要素に基づいてどのように実施されるかは明らかであるだろう。
上述の説明は、説明の目的上、特定の実施形態を参照して説明されている。しかし、上述の例示的説明は、網羅的であること、又は本発明を、開示されている寸分違わない形態に限定することを意図されてはいない。上述の教示を考慮すれば、多くの修正及び変形が可能である。本発明の原理及びその実際的な応用を最良の形で説明し、それによって他の当業者が、及び想到される特定の用途に好適な様々な改良で本発明及び様々な実施形態を最良な形で使用することを可能とするために、これらの実施形態を選択し説明した。