Можно ли навсегда закрыть или пометить подсказку TipKit как скрытую, коснувшись ее за пределами подсказки?IOS

Программируем под IOS
Ответить
Anonymous
 Можно ли навсегда закрыть или пометить подсказку TipKit как скрытую, коснувшись ее за пределами подсказки?

Сообщение Anonymous »

Я использую TipKit в своем приложении для iOS 16+, чтобы показывать пользователю подсказки по использованию. Поскольку TipKit доступен в iOS 17+, я использую оболочку на основе протокола, показанную ниже.
Хотя отображение подсказок в целом работает нормально, я заметил, что подсказки продолжают появляться снова, пока они не будут активно закрыты с помощью кнопки X-закрыть внутри подсказки. Хотя нажатие снаружи также отклоняет подсказку, его, по-видимому, недостаточно, чтобы пометить подсказку как отображаемую и предотвратить ее повторное отображение.
Это обычное/предполагаемое поведение или проблема с моей настройкой?
Есть ли какой-нибудь способ использовать нажатие снаружи, чтобы предотвратить многократное отображение подсказок?
Подсказки должны быть как можно меньше раздражающими. Таким образом, простого касания снаружи должно быть достаточно, чтобы они больше не появлялись.

Полная настройка:
/// Protocol for ensuring compatibility.
/// Enables tips to be passed and stored as properties without availability issues.
@available(iOS, obsoleted: 17, message: "This will be removed once we only support iOS 17+")
public protocol TipSupport {
@available(iOS 17, *)
var tip: AnyTip { get }
}

@available(iOS 17, *)
public extension Tip where Self: TipSupport {
var tip: AnyTip { AnyTip(self) }
}

public extension View {
/// Helper for making the `popupTip` modifier available for iOS some View {
if #available(iOS 17, *), let tip = tipSupport?.tip {
self.popoverTip(tip, arrowEdge: arrowEdge)
} else {
self
}
}
}

Теперь я могу использовать подсказки в своем коде:
struct TipTestView: View {
// let sampleTip = SampleTip()

var body: some View {
Text("Hello, World!")
.popupTip(SampleTip())
//.popupTip(sampleTip) // no difference
}
}

struct SampleTip: Tip, TipSupport {
var id: String { "SampleTip" }

var title: Text {
Text("Some Title")
}

var message: Text? {
Text("More information")
}

var image: Image? {
Image(systemName: "hand.tap")
}
}

TipKit настроен в настройках моего приложения:
.task {
if #available(iOS 17, *) {
#if DEBUG
//try? Tips.resetDatastore()
#endif

try? Tips.configure([
.datastoreLocation(.applicationDefault),
.displayFrequency(.immediate)
])
}
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... ing-outsid
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»