- July 26, 2025
- Mins Read
An iOS text field that represents tags, hashtags, tokens in general.
let tagsField = WSTagsField()
tagsField.layoutMargins = UIEdgeInsets(top: 2, left: 6, bottom: 2, right: 6)
tagsField.contentInset = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
tagsField.spaceBetweenLines = 5.0
tagsField.spaceBetweenTags = 10.0
tagsField.font = .systemFont(ofSize: 12.0)
tagsField.backgroundColor = .white
tagsField.tintColor = .green
tagsField.textColor = .black
tagsField.fieldTextColor = .blue
tagsField.selectedColor = .black
tagsField.selectedTextColor = .red
tagsField.delimiter = “,”
tagsField.isDelimiterVisible = true
tagsField.placeholderColor = .green
tagsField.placeholderAlwaysVisible = true
tagsField.keyboardAppearance = .dark
tagsField.returnKeyType = .next
tagsField.acceptTagOption = .space
tagsField.shouldTokenizeAfterResigningFirstResponder = true
// Events
tagsField.onDidAddTag = { field, tag in
print(“DidAddTag”, tag.text)
}
tagsField.onDidRemoveTag = { field, tag in
print(“DidRemoveTag”, tag.text)
}
tagsField.onDidChangeText = { _, text in
print(“DidChangeText”)
}
tagsField.onDidChangeHeightTo = { _, height in
print(“HeightTo”, height)
}
tagsField.onValidateTag = { tag, tags in
// custom validations, called before tag is added to tags list
return tag.text != “#” && !tags.contains(where: { $0.text.uppercased() == tag.text.uppercased() })
}
print(“List of Tags Strings:”, tagsField.tags.map({$0.text}))
To install it, simply add the following line to your Cartfile:
github “whitesmith/WSTagsField”
Then run carthage update
.
Follow the current instructions in Carthage’s README for up to date installation instructions.
To install it, simply add the following line to your Podfile:
pod “WSTagsField”
Then run pod install
with CocoaPods 1.8.0 or newer.
Using Xcode 11, just go to “File” > “Swift Packages” > “Add Package Dependency…” and use this repository: https://github.com/whitesmith/WSTagsField
.
Download all the source files and drop them into your project.
NavigationKit is a lightweight library which makes SwiftUI navigation super easy to use. 💻 Installation 📦 Swift Package Manager Using Swift Package Manager, add ...
An alternative SwiftUI NavigationView implementing classic stack-based navigation giving also some more control on animations and programmatic navigation. NavigationStack Installation ...
With SwiftUI Router you can power your SwiftUI app with path-based routing. By utilizing a path-based system, navigation in your app becomes ...
This package takes SwiftUI's familiar and powerful NavigationStack API and gives it superpowers, allowing you to use the same API not just ...