struct MyToken {
var title: String
}
struct TestView: View {
@State var tokens: [MyToken]
var body: some View {
VStack {
TokenField($tokens, { $0.title })
}
}
}
TokenField takes a Binding to a RandomAccessCollection of
elements to use as its tokens. When the token type does not conform
to StringProtocol, it also requires a closure to convert tokens to
a String.
struct TestIdentifiableStringsView: View {
@State var tokens: [String]
var body: some View {
VStack {
TokenField($tokens)
}
}
}
FormTokenField can be used within a Form view and be given a
label that will align with standard Form labels.
struct TestFormsView: View {
@State var tokens: [MyToken]
@State var strings: [String]
var body: some View {
Form {
FormTokenField(title:"Tokens", $tokens, { $0.title })
FormTokenField({ Text("Tokens") }, $strings)
}
}
}
TokenField
A SwiftUI wrapper for
NSTokenField
TokenField
takes aBinding
to aRandomAccessCollection
of elements to use as its tokens. When the token type does not conform toStringProtocol
, it also requires a closure to convert tokens to aString
.FormTokenField
can be used within aForm
view and be given a label that will align with standardForm
labels.