Как заставить TipKit показывать подсказку независимо от истории
Мне интересно, есть ли способ заставить TipKit надежно показывать подсказки по требованию? Я хочу, чтобы подсказка появлялась только тогда, когда пользователь нажимает кнопку справки, но я не могу добиться, чтобы это происходило постоянно (т. е. после каждого нажатия).
В этом примере кода он будет работать один раз при каждом запуске только потому, что я вызвал
import SwiftUI
import TipKit
struct extraHelp: Tip {
static let tipRequested = Event(id: "extraHelpRequested")
var title: Text { Text("Extra Help") }
var message: Text { Text("Suitable amount of explanation here.")}
var rules: [Rule] { [
#Rule(Self.tipRequested) { $0.donations.count > 0 }
]}
// This tip will always be visible when event received
var options: [Option] {
[IgnoresDisplayFrequency(true)]
}
}
struct ViewWithOnScreenHelp: View {
@State private var onscreenHelp = false
var body: some View {
VStack {
Button("Help!") {
Task { await extraHelp.tipRequested.donate() }
}
.popoverTip(extraHelp())
}
.padding()
.task { // This .task would normally go on the app root-view
try? Tips.resetDatastore() // not normal use
try? Tips.configure([
.displayFrequency(.immediate),
.datastoreLocation(.applicationDefault),
])
}
}
}
Я знаю, что Apple не хочет, чтобы я использовал TipKit, но я имею в виду именно UX, и было бы жаль не иметь возможности использовать предоставленные ими части.