2009-06-18 6 views
11

サポートされていない言語で入力できるように、独自のiPhoneキーボードを変更または作成する方法はありますか?iPhoneキーボードのカスタマイズ

+2

実際これも可能です。あなたが受け入れた答えは***正しい***ではありません。あなたがカスタムキーボードを実装する方法である@Anomiesの答えを見てください。 – RyanR

+0

@RyanR:受け入れられた回答は2009年に正しかった。その質問が尋ねられ答えられたときに、iOS 3.0がリリースされました。私の答えは、iOS 3.2が必要です。私はなぜalokがそのような古い質問に賞金を投じたのかよく分かりません。 – Anomie

答えて

13

あなたはです。あなた自身のキーボードを作成しますが、実際にはそれを使用することはより困難です。

それを作成するには、次の

  1. は、キーボードのビューを作成します。どのサブビューを使用することもできます。これを行う最も便利な方法は、おそらくUIViewサブクラスを作成することです。
  2. UIResponderのプロパティによって返されるキーボードビューのインスタンスを配置します。 UITextViewとUITextFieldでは、これはプロパティの割り当てと同じくらい簡単です。他のクラスでは、デフォルトでプロパティが読み取り専用と宣言されているため、おそらくアクセサをサブクラス化またはスウィズルする必要があります。

詳細はthe documentationを参照してください。

実際にを使用すると、このカスタムキーボードは難しくなります。 iOS 4.3以降、UITextFieldもUITextViewもUITextInput protocolに準拠していないため、この目的には最適です。 UITextViewの場合、クラスによって提供されるメソッドを使用して動作させることができるはずですが、UITextFieldは現在の選択またはカーソル位置を見つける方法を提供しないため、完全に機能するキーボードを公開して作成することはできませんappendとdelete-from-endが可能で、さらにはinserting at the current position by manipulating the clipboardですが、標準キーボードのような "前の文字を削除"ボタンは不可能となります)。

iOS 5.0以降、UITextFieldとUITextViewは最終的にUITextInputプロトコルを実装します。カーソル位置にテキストを挿入したり削除したりするのは簡単なことです。

6

いいえ、現在のところこれを行う方法はありません。

サブビューを追加して独自のボタンを追加する方法があります。しかし、それはサポートされておらず、いつでも失敗する可能性があります。

自分で作成する場合は、独自のテキストボックスコントロールと、キーボードが必要な他のコントロールをロールバックする必要があります。つまり、理想的な選択肢ではありません。

関連する問題