实例方法
focused
focusedSceneValue(_:_:)
通过注入您提供的值来修改此视图,以供其他视图使用,这些视图的状态取决于焦点场景。
声明
func focusedSceneValue<T>(
_ keyPath: WritableKeyPath<FocusedValues, T?>,
_ value: T
) -> some View
返回值
此视图的修改表示。
参数
keyPath
将
value
添加到现有的已发布焦点值表时关联的关键路径。value
要发布的焦点值。
详述
对于无论焦点位于活动场景中的何处都必须可见的值,请使用此方法而不是 View/focusedValue(_:_:)
。例如,如果一个应用程序需要一个命令来将焦点移动到侧边栏中的特定文本字段,它可以使用这个修饰符发布一个按钮操作,只要场景处于活动状态,无论焦点发生在哪里,命令视图都可以看到该操作在其中。
struct Sidebar: View {
@FocusState var isFiltering: Bool
var body: some View {
VStack {
TextField(...)
.focused(when: $isFiltering)
.focusedSceneValue(\.filterAction) {
isFiltering = true
}
}
}
}
struct NavigationCommands: Commands {
@FocusedValue(\.filterAction) var filterAction
var body: some Commands {
CommandMenu("Navigate") {
Button("Filter in Sidebar") {
filterAction?()
}
}
.disabled(filterAction == nil)
}
}
struct FilterActionKey: FocusedValuesKey {
typealias Value = () -> Void
}
extension FocusedValues {
var filterAction: (() -> Void)? {
get { self[FilterActionKey.self] }
set { self[FilterActionKey.self] = newValue }
}
}
可用版本
iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+
相关用法
- Swift Never focused(_:)用法及代码示例
- Swift Never focused(_:equals:)用法及代码示例
- Swift Never focusSection()用法及代码示例
- Swift Never foregroundStyle(_:)用法及代码示例
- Swift Never font(_:)用法及代码示例
- Swift Never flipsForRightToLeftLayoutDirection(_:)用法及代码示例
- Swift Never fixedSize()用法及代码示例
- Swift Never fullScreenCover(item:onDismiss:content:)用法及代码示例
- Swift Never fullScreenCover(isPresented:onDismiss:content:)用法及代码示例
- Swift Never fixedSize(horizontal:vertical:)用法及代码示例
- Swift Never frame(width:height:alignment:)用法及代码示例
- Swift Never pageCommand(value:in:step:)用法及代码示例
- Swift Never opacity(_:)用法及代码示例
- Swift Never colorMultiply(_:)用法及代码示例
- Swift Never accessibilityAction(action:label:)用法及代码示例
- Swift Never alert(isPresented:error:actions:message:)用法及代码示例
- Swift Never confirmationDialog(_:isPresented:titleVisibility:actions:)用法及代码示例
- Swift Never position(x:y:)用法及代码示例
- Swift Never position(_:)用法及代码示例
- Swift Never luminanceToAlpha()用法及代码示例
- Swift Never accessibilityAction(_:_:)用法及代码示例
- Swift Never previewDisplayName(_:)用法及代码示例
- Swift Never badge(_:)用法及代码示例
- Swift Never progressViewStyle(_:)用法及代码示例
- Swift Never buttonStyle(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Never focusedSceneValue(_:_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。