我有一个SwiftUI应用程序也是针对iOS 14的。我想只在iOS 15版本上使用焦点状态。我不太介意iOS 14版本。因为focusState只适用于iOS 15。
@FocusState private var isUsernameFocused: Bool = false
我尝试用#available来定义,但它不起作用。同样,我只想在iOS 15机器上使用它,但我需要一种方法来声明它。
我想在按下按钮时使用它。每当我按下按钮时,我想激活文本字段的键盘。我如何在SwiftUI上实现这一点?
1条答案
按热度按时间46scxncf1#
你没有说你想如何使用它,但一般的方法可以是这样的:
1.创建一个
View
,它将只与iOS 15兼容,并将包含@FocusState
,以及封装特定于焦点的任何行为(它们可以在init
上预定义或传递):1.现在,在主视图中,使用
if #available(iOS 15, *
显示FocusableUsername
,或者只是一个常规的'TextField(或者您正在使用的任何组件):当然,您可能需要从外部控制该字段的行为,例如,您可以将主视图作为委托传递给它,或者传递一些闭包来运行--这里有许多选项。