FlexibleInputStackBar
Customizable input accessory view
Video of example
Features
- You can create an bar on the keyboard with easy way.
- FlexibleInputStackBar has two UIStackView at left and right.
Example
The example application is the best way to see FlexibleInputStackBarDemo
in action. Simply open the Demo.xcworkspace
.
Installation
CocoaPods
FlexibleInputStackBar is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'FlexibleInputStackBar'
Carthage
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
To integrate FlexibleInputStackBar into your Xcode project using Carthage, specify it in your Cartfile
:
github "kzumu/FlexibleInputStackBar"
Run carthage update
to build the framework and drag the built FlexibleInputStackBar.framework
into your Xcode project.
On your application targets’ “Build Phases” settings tab, click the “+” icon and choose “New Run Script Phase” and add the Framework path as mentioned in Carthage Getting started Step 4, 5 and 6
Swift Package Manager
To integrate using Apple's Swift Package Manager, add the following as a dependency to your Package.swift
:
dependencies: [
.package(url: "https://github.com/kzumu/FlexibleInputStackBar.git", from: "0.0.2")
]
Usage
import FlexibleInputStackBar
class ViewController: UIViewController {
private let textField: UITextField = {
let field = UITextField()
return field
}()
private lazy var flexibleInputStackBar: FlexibleInputStackBar = {
let bar = FlexibleInputStackBar(height: 40)
bar.addArrangedSubviewToLeft(leftButton1)
bar.addArrangedSubviewToRight(rightButton2)
return bar
}()
private let leftButton1 = UIButton(frame: .init(x: 0, y: 0, width: 40, height: 40))
private let rightButton1 = UIButton(frame: .init(x: 0, y: 0, width: 40, height: 40))
override var inputAccessoryView: UIView? { return flexibleInputStackBar }
// if you return true, always input bar is shown.
override var canBecomeFirstResponder: Bool { return true }
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(textField)
}
}
Contributing
Contributions are very welcome