Popularity
0.8
Stable
Activity
0.0
Stable
31
2
1

Description

It's a fairly common case, when the enabled state of button depends on some textable elements such as TextView, TextField. So this library allows the simplest way to achive this purpose with only few lines of code.

Code Quality Rank: L5
Programming language: Swift
Tags: UI     Button     iOS    
Latest version: v1.1.1

NxEnabled alternatives and similar libraries

Based on the "Button" category

Do you think we are missing an alternative of NxEnabled or a related project?

Add another 'Button' Library

README

Build Status Carthage compatible CocoaPods compatible Swift 3.0.x platforms

What is NxEnabled?

It's a fairly common case, when the enabled state of button depends on some textable elements such as TextView, TextField. So this library allows the simplest way to achive this purpose with only few lines of code.

Getting started :rocket:

Typical login screen with short, beautiful validation code:

loginButton.isEnabled(by: usernameTextField, passwordTextField) { username, password in
    username.characters.count > 5 && password.characters.count > 5
}

you can also combine together UITextView with UITextField's:

signUpButton.isEnabled(by: firstnameTextField, lastnameTextField, bioTextView) { firstname, lastname, bio in
    return /* validation value */
}

So there is also oportunity to add not UI element:

  • Implement Textable protocol

  • Be a successor from NSObject

  • Not forget about dynamic label for property

  • Done.

class Object: NSObject, Textable {
    dynamic var value: String?
    var textKey: String {
        return "value"
    }
}

NOTE:

One important case is that you should clear button's bag. It removes all observers from textable elements. Usually it needs to do in deinit method.

deinit {
    signUpButton.clearBag()
}

Now library allows to add textable elements up to six. :clap:

Installation :fire:

CocoaPods

To integrate NxEnabled, simply add the following line to your Podfile:

pod "NxEnabled"

Carthage

To integrate NxEnabled into your Xcode project using Carthage, specify it in your Cartfile:

github "Otbivnoe/NxEnabled"

Run carthage update to build the framework and drag the built NxEnabled.framework into your Xcode project.

Author :muscle:

Nikita Ermolenko, gnod94@gmail.com

License :exclamation:

NxEnabled is available under the MIT license. See the LICENSE file for more info.


*Note that all licence references and agreements mentioned in the NxEnabled README section above are relevant to that project's source code only.