2011-07-06 12 views
8

現在、私はUIKeyinputを使用していますが、削除キーを長押ししても、delteBackwardイベントは1つだけ送信されます。 私は長い間、削除を押したままにすると、複数のイベントコールを送信させることができますか?UIKeyInputを繰り返し行うと、deleteBackwardsが呼び出されます

+0

は、あなたがこの問題にどこに行くでしたか? –

答えて

3

システムキーボードに自動リピートをさせる簡単な方法はありません。二つのオプションを持つこれらの葉ます:キーボードの上にオーバーレイを使用して、それ

  1. フェイク(@のpho0によってコメントを参照してください)
  2. はあなたのビューまたはビューコントローラ用inputViewとして、それをインストールし、カスタムキーボードを実装し、自動リピートをサポートするカスタムプロトコルを実装します。

解決方法1は、自動的に削除キーが必要な場合にうまく機能しますが、すべてのキーを自動繰り返しする必要がある場合は、オーバーレイコードがカスタムキーボードオプションと同じくらい複雑になります。 (オーバーレイには各キーの四角形が必要なので、アンダーレイキーボードを置き換えないのはなぜですか?)

解決策2には、ある程度の「前向き」の作業が含まれています。これを行う方法の1つは、キーキャップクラス(物理キーのような)とキーボードレイアウトクラスを定義することです。

私が取り組んでいるプロジェクトで両方のソリューションを実装しましたが、私が好きなキーボードを作成できるので、現在ソリューション2を使用しています。単純なケースでは、システムキーボードではないことを決して知る必要はありません。パワーユーザーのために、キーボードは適切にカスタマイズすることができます。

これは価値のあることですが、キーボードクラスをダムにすると便利です。キーがダウン状態に移行したか、アップ状態に移行したことを伝えるだけです。上記の追加クラスは、どのようなアクションを取るべきかを決定します。いくつかの点で

、私はこれがあなたが探していた答えではないけど、私はそれが役に立てば幸い、 IDZ

+0

ソリューション2のコードを投稿しても構いませんか?ありがとう –

+0

@ tommy7xp申し訳ありませんがコードはありません投稿することは自由です。 – idz

3

人が見たことの1つは、キーボードボタンの上に偽のボタンを置くことです。誰かがそれを押さえているときは、それが発動するたびにタイマーに最後の文字を取り除かせてください。

これが役に立ちます。

関連する問題