我已经使用 swift 和 swiftui 构建了一个 iOS 应用程序,现在我正在开发该应用程序的 tvOS 版本。但是,我有几个问题。其中一个问题仍未解决:tvOS 文本字段透明背景 https://stackoverflow.com/questions/61807833/tvos-textfield-transparent-background我正在创建一个登录页面,我意识到 NavigationLink 内的按钮没有执行任何操作。然后为了测试和识别问题,我创建了一个简单的按钮,如下所示:
Button(action: {
print("Login pressed")
}) {
Text("Login")
.frame(width:300, height: 35)
}
.background(Color.blue)
.foregroundColor(Color.white)
点击时输出:
Login pressed
它看起来像这样:
当焦点集中时,它看起来像这样:
但是,当我将该按钮插入到 NavigationLink 中时,“导航”就像一个按钮,而该按钮不执行任何操作。
代码是这样的:
NavigationLink(destination: mainScene(), tag:1, selection: $selection) {
Button(action: {
print("Login pressed")
self.selection = 1
}) {
Text("Login")
.frame(width:300, height: 35)
}
.background(Color.blue)
.foregroundColor(Color.white)
}
在iOS中,我有一个类似的代码,直到按钮操作中的所有内容都被执行并且选择等于1时,它才会导航。但是在这个代码中,它不会执行任何内容,只是直接导航到下一页。当我将按钮嵌入到 NavigationLink 中时,该按钮看起来像这样:
正如您所看到的,原始登录按钮周围有空白区域,焦点就在该空白区域上。当点击它时,它会导航。看起来 NavigationLink 的作用就像一个按钮,但它也会阻止执行按钮操作。我遇到的这些问题主要是由焦点引起的。例如,在上图中,您可以看到当焦点位于时按钮的形状和颜色会发生变化,但我想控制它。但是,我不知道如何进行项目的焦点设计。
尝试以下操作
Button(action: {
print("Login pressed")
self.selection = 1
}) {
Text("Login")
.frame(width:300, height: 35)
}
.background(Color.blue)
.foregroundColor(Color.white)
.background(NavigationLink(destination: mainScene(), tag:1,
selection: $selection) { EmptyView() })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)