[編集]
今あなたの質問の中でキーダウンとキーアップのアイデアを見た後!!!
腕立て伏せと腕立て伏せのイベントをキャプチャする方法を私が知っている唯一の方法は、gestureRecognizerオブジェクトを使用するか、独自のカスタムコードを作成することです。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
と
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
問題は、自然なキーボードタッチイベント構造を独自のものでオーバーライドして、アップイベントとダウンイベントを別々にキャプチャできるようにする方法がないことです。これは本当に悲しい部分になります。これを行うには、ほとんどの場合、独自のキーボードと、上記のルーチンを使用したイベント構造を作成する必要があります。これは、gestureRecognizerオブジェクトでさえ、ダウンイベントとアップイベントを別々に提供するのに十分な粒度ではないためです。
[オリジナル]
これを行う方法は、キーボード入力が必要な場合に、非表示のUITextFieldを画面に表示することです。
次に、UITextFieldデリゲートメソッドの一部またはすべてを実装して、編集の終了時、実行中などにテキストを取得します。
ここに、あなたが始めるためのSOリンクがいくつかあります!
//以下は、テキスト入力を浮動小数点数値(科学的なものなどではなく、単一のピリオドを持つ単純な浮動小数点数)に制限するカスタムキーボード機能を実装し、入力を開始した表示可能なUITextFieldにテキストを戻します。
設定バンドルの整数値のキーボード入力に対する堅牢なソリューションが必要
以下では、ユーザーがUISegmentedControlの要素をタップすると、コード内にUITextFieldが動的に作成されます(押された要素内のテキストを変更したい場合)。UITextFieldは非表示になり、テキストはUISegmentedControlアイテムのテキストに適用されます。
編集ボタンでセグメント化されたコントロールのタイトルを変更しますか?
このように実装する必要はありません。UITextFieldを静的に定義し、(画面上で)非表示にし、テキストを変更したいオブジェクトがタップされた場合にのみキーボードをアクティブにすることができます...