我想在swiftUI中从indexvariable开始的循环中设置一个键盘快捷键。
我的代码(注解行)未编译。
var body: some View {
ForEach (1...5, id: \.self) { index in
Button("\(index)"){print("\(index) pressed")}
//.keyboardShortcut("\(index)", modifiers: [.command])
}
}
}
这是怎么做到的?
3条答案
按热度按时间csbfibhn1#
你需要把Int的索引转换成Character,然后再转换成KeyEquivalent。我强制打开UnicodeScalar,因为它返回一个可选的,但是对于这个例子,我们保证一个Int,这应该不是问题。但是要知道它在那里。
bgtovc5b2#
@Yrb的解决方案编译,但不能按预期工作,因为UnicodeScalar(index)被解释为带有数字索引的unicode。
这对我很有效:
jjjwad0x3#
如果索引范围有限,可以执行以下操作: