はじめに
言葉だけだとイメージしづらいと思うので具体例を出すと、キーボードのバックスペースボタンです。
バックスペースボタンを長押ししている間は文字を消し続けてくれます。
あれを自前で実装しようと思うと割と大変そうです。
iOS17から標準機能として提供され始めたので記事にしておきます。
サンプルアプリ
実装
import SwiftUI
struct ContentView: View {
var body: some View {
Button {
print("りんご")
} label: {
Text("長押しで「りんご」と繰り返し出力する")
}
.buttonRepeatBehavior(.enabled)
}
}
disabled
を渡すといつも通りのボタンの動きになります。
.buttonRepeatBehavior(.disabled)
おわり
長押しで繰り返し処理ってキーボードのバックスペース以外に使われる箇所あるのかな?
公式ドキュメント