A SwiftUI onChange and task view modifiers with additional debounce time.
import SwiftUI
import DebouncedOnChange
struct ExampleView: View {
@State private var text = ""
var body: some View {
TextField("Text", text: $text)
.onChange(of: text, debounceTime: .seconds(2)) { newValue in
// Action executed each time 2 seconds pass since change of text property
}
.task(id: text, debounceTime: .milliseconds(250)) {
// Asynchronous action executed each time 250 milliseconds pass since change of text property
}
}
}
Add the following to the dependencies array in your "Package.swift" file:
.package(url: "https://github.com/Tunous/DebouncedOnChange.git", .upToNextMajor(from: "1.1.0"))
Or add https://github.com/Tunous/DebouncedOnChange.git, to the list of Swift packages for any project in Xcode.
link |
Stars: 22 |
Last commit: 3 weeks ago |
task(id:priority:_:)
modifierDuration
type as debounceTime
parameterFull Changelog: https://github.com/Tunous/DebouncedOnChange/compare/1.0.2...1.1.0
Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics