私は電卓のアプリを作っていて、自分のキーパッドにUIButtonsを供給しています。私はdeleteキーを持っていますが、すべてを削除したい場合、ユーザーがdeleteキーを何度も何度も押し続けなければならないことを除いて、すべてが機能します。どのように連続削除ボタンをプログラムしますか?
ボタンを2秒以上押したままにすると、すべてを削除する方法があるのだろうかと思っていました。
私は電卓のアプリを作っていて、自分のキーパッドにUIButtonsを供給しています。私はdeleteキーを持っていますが、すべてを削除したい場合、ユーザーがdeleteキーを何度も何度も押し続けなければならないことを除いて、すべてが機能します。どのように連続削除ボタンをプログラムしますか?
ボタンを2秒以上押したままにすると、すべてを削除する方法があるのだろうかと思っていました。
これを実装する最も簡単な方法は、長い押しジェスチャ認識器を[Delete]
ボタンに付けることです。
Xcodeでは、インターフェースビルダーに長いプレスジェスチャー認識機能を付けることができます。これをボタンに追加し、長押しの時間を設定し、他のUIイベントと同じ方法でハンドラをIBOutlet
に接続します。
コードで行う場合は、this answerがどのように表示されますか。
本当にありがとう!!!!私ができるときに答えを受け入れるでしょう – OnkaPlonka
サブクラス化されたUIButtonでは、"touchesBegan: withEvent:
" UIResponder methodを見たい場合があります。一定のしきい値を超えたら、狂ったように(つまり、"touchesEnded: withEvent
" methodが呼び出されるまで)削除を開始します。
ありがとうございますが、私はそれをサブクラス化しておらず、好きではありません – OnkaPlonka
この
-(IBAction)buttonHit {
//here start timer that fires for every 2 seconds and handle deletion method in that
}
-(IBAction)buttonReleased {
//Stop timer...
}
これは本当に私を助けなかった – OnkaPlonka
これをよくチェックアウト:https://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSTimer_Class/Reference/NSTimer.html – Guru
これが欠けている重要な詳細を処理するために、独自のタイマー機能を使用してください。どのように番号を保存しますか?あなたは現在、最後の数字をどのように削除しますか? –
ユーザーが数字キーを押すと、UILabelの一番上に配置され、削除キーはUILabel.textの最後から一文字だけを削除します。 – OnkaPlonka
長押しのジェスチャーを使用している場合は、その機能を実現することを願っています。 – Exploring