{
  "name": "SCNumberKeyBoard",
  "version": "0.4.0",
  "summary": "A Money Number KeyBoard Like AliPay Money Number KeyBoard.",
  "description": "## SCNumberKeyBoard\n* A Money Number KeyBoard Like AliPay Money Number KeyBoard.\n* You can use code, xib and storyboard.\n\n## Installation\nUse the [CocoaPods](http://github.com/CocoaPods/CocoaPods).\n\nIn your Podfile\n>`pod 'SCNumberKeyBoard'`\n\nGet SCNumberKeyBoard\n>`#import \"SCNumberKeyBoard.h\"`\n\n## Or\nDrag `SCNumberKeyBoardDemo/Classes` folder into your project\n>`#import \"SCNumberKeyBoard.h\"`\n\n## Previews\n![](http://i1.tietuku.com/56d87eac2287ab33.gif)\n\n## How To Use\n```objc\n[SCNumberKeyBoard showOnViewController:<#viewController#> enter:^(UITextField *textField, NSString *number) {\n        NSLog(@\"textField:%@ - number:%@\", textField, number);\n    } close:^(UITextField *textField, NSString *number) {\n        NSLog(@\"textField:%@ - number:%@\", textField, number);\n}];\n```\n## Or\n```objc\n[SCNumberKeyBoard showWithTextField:<#textField#> enter:^(UITextField *textField, NSString *number) {\n        NSLog(@\"textField:%@ - number:%@\", textField, number);\n    } close:^(UITextField *textField, NSString *number) {\n        NSLog(@\"textField:%@ - number:%@\", textField, number);\n}];\n## Localization\nLocalization include Chinese and English, you can add other by yourself. Change localization you should edit Info.plist.\n\nUse localization that you should change IOS system language.\n\n-----------------\n\n## 金额输入键盘\n* 可以同时在代码和Xib以及Storyboard中使用。\n* 只需要简单一句代码即可搞定麻烦的金额输入控制。\n\n## 如何使用SCNumberKeyBoard\n### Cocoapods:\n* cocoapods导入：`pod 'SCNumberKeyBoard'`\n### 手动导入:\n* 将`SCNumberKeyBoardDemo/Classes`文件夹中的所有文件拽入项目中\n* 导入主头文件：`#import \"SCNumberKeyBoard.h\"`\n\n## 效果图\n![](http://i1.tietuku.com/56d87eac2287ab33.gif)\n\n## 加入代码\n```objc\n[SCNumberKeyBoard showOnViewController:<#viewController#> enter:^(UITextField *textField, NSString *number) {\n        NSLog(@\"textField:%@ - number:%@\", textField, number);\n    } close:^(UITextField *textField, NSString *number) {\n        NSLog(@\"textField:%@ - number:%@\", textField, number);\n}];\n```\n## 或者\n```objc\n[SCNumberKeyBoard showWithTextField:<#textField#> enter:^(UITextField *textField, NSString *number) {\n        NSLog(@\"textField:%@ - number:%@\", textField, number);\n    } close:^(UITextField *textField, NSString *number) {\n        NSLog(@\"textField:%@ - number:%@\", textField, number);\n}];\n```\n## 本地化\n本地化只包含了中文和英文，其他语言自行添加。\n\n使用本地化，改变IOS系统语言即可。",
  "homepage": "https://github.com/shicang1990/SCNumberKeyBoard",
  "screenshots": "http://i1.tietuku.com/56d87eac2287ab33.gif",
  "license": "MIT",
  "authors": {
    "ShiCang": "shicang1990@gmail.com"
  },
  "platforms": {
    "ios": "6.0"
  },
  "source": {
    "git": "https://github.com/shicang1990/SCNumberKeyBoard.git",
    "tag": "0.4.0"
  },
  "source_files": "Classes/*.{h,m}",
  "resources": "Resources/SCNumberKeyBoard.bundle",
  "requires_arc": true
}
