Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bonyadmitr/KeyboardHideManager

Codeless manager to hide keyboard by tapping on views for iOS written in Swift
https://github.com/bonyadmitr/KeyboardHideManager

List: KeyboardHideManager

awesome awesome-list cocoapods codeless framework ib ios keyboard library manager storyboard swift swift-3 swift-framework swift3 touch

Last synced: about 1 month ago
JSON representation

Codeless manager to hide keyboard by tapping on views for iOS written in Swift

Awesome Lists containing this project

README

        

# KeyboardHideManager

![Icon](Resources/keyboard_icon.png)

[![Language](https://img.shields.io/badge/Swift-3.0+-orange.svg)](https://developer.apple.com/swift/)
[![CocoaPods Compatible](https://img.shields.io/cocoapods/v/KeyboardHideManager.svg)](https://cocoapods.org/)
[![Platform](https://img.shields.io/cocoapods/p/KeyboardHideManager.svg)](http://cocoadocs.org/docsets/KeyboardHideManager)
[![License](https://img.shields.io/badge/License-MIT-blue.svg)](http://mit-license.org/)
[![Awesome-ios](https://img.shields.io/badge/Awesome-ios-ff69b4.svg)](https://github.com/vsouza/awesome-ios#keyboard)
[![Awesome-swift](https://img.shields.io/badge/Awesome-swift-ff69b4.svg)](https://github.com/matteocrippa/awesome-swift#keyboard)
[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)

**KeyboardHideManager** - codeless manager to hide keyboard by tapping on views for iOS written in Swift.

![preview](Resources/preview.png)

## Structure

- [Features](#features)
- [Requirements](#requirements)
- [Installation](#installation)
- [CocoaPods](#cocoapods)
- [Carthage (not supported)](#carthage-not-supported)
- [Manually](#manually)
- [Usage](#usage)
- [User Iteraction Enabled](#user-iteraction-enabled)
- [Code usage](#code-usage)
- [Xib support](#xib-support)
- [To do](#to-do)
- [License](#license)

## Features

- [x] 3 simple actions to setup
- [x] Multiple views setup
- [x] Codeless usage
- [x] Xib support

## Requirements

- Swift 3.0+
- iOS 8.0+

## Installation

### CocoaPods

```ruby
pod 'KeyboardHideManager', '~> 1.0'
```

Full CocoaPods Guide (click to expand)

[CocoaPods](http://cocoapods.org) is a dependency manager for Cocoa projects. You can install it with the following command:

```bash
$ gem install cocoapods
```

To integrate KeyboardHideManager into your Xcode project using CocoaPods, create file `Podfile` with content:

```ruby
platform :ios, '9.0'
use_frameworks!

target '' do
pod 'KeyboardHideManager', '~> 1.0'
end
```

Then, run the following command:

```bash
$ pod install
```

Close 'Your Target Name'.**xcodeproj** and open 'Your Target Name'.**xcworkspace**.

### Carthage (not supported)

KeyboardHideManager cannot be used with Carthage in IB due `.framework` issue. Use CocoaPods or Manual install.

### Manually

> If you prefer not to use either of the aforementioned dependency managers, you can integrate KeyboardHideManager into your project manually.

Drag `KeyboardHideManager` folder in your project.

## Usage

- 1. Drag Object from Object library

![usage_1](Resources/usage_1.png)

- 2. Setup `KeyboardHideManager` in Class field

![usage_2](Resources/usage_2.png)

- 3. Connect views with `targets`

![usage_3](Resources/usage_3.png)

## User Iteraction Enabled

Target must be `UIView` subclass and `user iteraction enabled` is on. You can set it in IB in View section: (example for UILabel)

![user_iteraction_enabled](Resources/user_iteraction_enabled.png)

or in code:

```swift
someView.isUserInteractionEnabled = true
```

## Xib support

To use with xib you must add strong property to controller:

```swift
@IBOutlet var keyboardHideManager: KeyboardHideManager!
```

> Otherwise it will be deinited. It is logic of Objects in xibs.

## To do

- [x] Add example
- [x] Add tests
- [x] Add comments
- [ ] Add CI

## License

KeyboardHideManager is released under the MIT license. See [LICENSE](./LICENSE.md) for details.