whitesmith
WSTagsField
Swift

An iOS text field that represents tags, hashtags, tokens in general.

Last updated Jun 25, 2026
1.3k
Stars
225
Forks
30
Issues
0
Stars/day
Attention Score
65
Language breakdown
No language data available.
โ–ธ Files click to expand
README

WSTagsField

Carthage Compatible SwiftPM Compatible CocoaPods Compatible Swift 5.1 Platforms iOS [Build Status]() License MIT

An iOS text field that represents tags, hashtags, tokens in general.

WSTagsField

Usage

swift
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}))

Installation

[Carthage]

[Carthage]: https://github.com/Carthage/Carthage

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][carthage-installation] for up to date installation instructions.

[carthage-installation]: https://github.com/Carthage/Carthage#adding-frameworks-to-an-application

[CocoaPods]

[CocoaPods]: http://cocoapods.org

To install it, simply add the following line to your Podfile:

pod "WSTagsField"

Then run pod install with CocoaPods 1.8.0 or newer.

Swift Package Manager

Using Xcode 11, just go to "File" > "Swift Packages" > "Add Package Dependency..." and use this repository: https://github.com/whitesmith/WSTagsField.

Manually

Download all the source files and drop them into your project.

Requirements

  • iOS 9.0+
  • Xcode 11 (Swift 5.1)

Contributing

The best way to contribute is by submitting a pull request. We'll do our best to respond to your patch as soon as possible. You can also submit a new GitHub issue if you find bugs or have questions. :octocat:

Credits

Whitesmith

This project was inspired by CLTokenInputView.

ยฉ 2026 GitRepoTrend ยท whitesmith/WSTagsField ยท Updated daily from GitHub