Currency text field formatter available for UIKit and SwiftUI 💶✏️

What's New

Release libraries for SwiftUI


This release added new libraries and API for formatting currency text in SwiftUI.
For more detail please check the docs and the Example app.

Obs: For now the SwiftUI libraries are only available for iOS given that the bridging between UIKit to SwiftUI required configuring an underlying UITextField.
A future major version may provide SwiftUI support for all Apple platforms, in vanilla SwiftUI without the need to bridge from UIKit, whenever Apple provides us with API for fully controlling a SwiftUI.TextField selectedTextRange.


  • Fixed CurrencyFormatter.unformatted(string:) when hasDecimals is true
  • Updated the ExampleApp with both UIKit and SwiftUI examples, and made it Storyboard-less
  • Increased min supported iOS version from 9.0 to 11.0
  • Updated from Swift 5.0 to Swift 5.3 toolchain
  • Added a SwiftPackage library CurrencyTextSwiftUI and CocoaPods sub-spec CurrencyTextField that provides access to SwiftUI.CurrencyTextField and CurrencyTextFieldConfiguration

[Build status Coverate status Swift Platform Swift Package Manager CocoaPods Compatible Twitter

CurrencyText provides lightweight libraries for formating text field text as currency, available for both UIKit and SwiftUI.

Its main core, the CurrencyFormatter class, can also be used a part from text fields to format any value that can be monetary represented.

If you need to present currency formatted text or allow users to input currency data, CurrencyText is going to help you do it in a readable and configurable matter.


For details on how to use CurrencyText libraries please refer to the docs.


Swift Package Manager

To install it using Swift Package Manager, just add this repository through Xcode built-in Swift Packages, or by manually adding it to your Package.swift Package's dependencies:

dependencies: [
    	url: "", 
    	.upToNextMinor(from: .init(2, 1, 0)

    name: "MyTarget",
    dependencies: [
    	// Can be imported to consume the formatter in insolation
        .target(name: "CurrencyFormatter"),

        // UIKit library - Provide access to "CurrencyFormatter" and "CurrencyUITextFieldDelegate" targets
        .target(name: "CurrencyText"),

        // SwiftUI library - Provide access to "CurrencyFormatter" and "CurrencyTextField" targets
        .target(name: "CurrencyTextSwiftUI")

Install via CocoaPods

To integrate CurrencyText using CocoaPods, specify it, one or more of its sub-specs in your Podfile:

# Podfile

target 'YOUR_TARGET_NAME' do
     pod 'CurrencyText'

     # sub-specs

     # pod 'CurrencyText/CurrencyFormatter'
     # pod 'CurrencyText/CurrencyUITextField'
     # pod 'CurrencyText/CurrencyTextField'


Contributions and feedbacks are always welcome. Please feel free to fork, follow, open issues and pull requests. The issues, milestones, and what we are currently working on can be seen in the main Project.

Special Thanks

To @malcommac for his awesome work with SwiftRichString and SwfitDate, that inspired me when creating this project. Also to myanalysis for contributing so much by finding issues and giving nice suggestions.


CurrencyText is released under the MIT license. See LICENSE for details.

Felipe Marino:, @_marinofelipe


  • Swift Tools 5.3.0
View More Packages from this Author


Last updated: Wed Oct 27 2021 21:17:39 GMT-0500 (GMT-05:00)