VENCalculatorInputView

https://github.com/venmo/VENCalculatorInputView

VENCalculatorInputView is the calculator keyboard that is used in the Venmo iOS app. Available for iOS 5 and beyond. Enjoy.

VENCalculatorInputView是一款计数器样式的键盘,该键盘在 Venmo 中有用到,支持iOS5+,希望你喜欢.

Installation

The easiest way to get started is to use CocoaPods. Just add the following line to your Podfile:

最简单的安装方式是使用 CocoaPods ,在下面的Podfile中加入以下一行即可.

pod 'VENCalculatorInputView', '~> 1.4'

Sample Usage

You can choose to use just VENCalculatorInputView (only the keyboard) and define your own behavior or use VENCalculatorInputTextField (keyboard + text field with money calculation built in).

你可以选择直接使用VENCalculatorInputView(仅仅是键盘)然后定义你自己的行为,或者是直接使用VENCalculatorInputTextField(键盘 + 内置的价格计算样式).

Using just the calculator keyboard

1. Set the input view. 设置input view.

Find the UITextField or UITextView that you want to display the keyboard and set its inputView to an instance of VENCalculatorInputView.

找到你想要展示键盘的的UITextField或者是UITextView,然后将VENCalculatorInputView当做实例对象赋值.

myTextField.inputView = [VENCalculatorInputView new];

This will have VENCalculatorInputView display when my TextField becomes firstResponder instead of the system keyboard.

这样子之后,就会让VENCalculatorInputView展示出来,当你的TextField变成第一响应者时(此时并不会展示系统的键盘).

2. Implement the <VENCalculatorInputViewDelegate> methods. 实现<VENCalculatorInputViewDelegate>代理方法

First, have a class implement the <VENCalculatorInputViewDelegate> protocol and set myTextField.inputView.delegate to an instance of that class.

首先,先在类中声明<VENCalculatorInputViewDelegate>的协议,然后将myTextField.inputView.delegate设置上.

Next, implement the delegate method that handles keyboard input:

接着,实现代理方法来处理键盘输入事件:

- (void)calculatorInputView:(VENCalculatorInputView *)inputView didTapKey:(NSString *)key {
NSLog(@"Just tapped key: %@", key);
// Handle the input. Something like [myTextField insertText:key];
}

Finally, implement the delegate method that handles the backspace key:

最后,实现代理方法来控制键值backspace:

- (void)calculatorInputViewDidTapBackspace:(VENCalculatorInputView *)calculatorInputView {
NSLog(@"Just tapped backspace.");
// Handle the backspace. Something like [myTextField deleteBackward];
}

Try it!

You can read more about custom keyboards in Apple's documentation.

如果要了解更多,你可以看一下自定义键盘的文档(Apple's documentation).

Using the calculator text field (optimized for money calculation) 使用计算器text field(专门为了计算金钱而优化)

All you need to do is use VENCalculatorInputTextField instead of UITextField and use it like normal text field. It will automagically handle the input and make calculations. Take a look at out ourVENCalculatorInputViewSample project.

所有你需要做的,就是使用VENCalculatorInputTextField来替换UITextField,然后就想使用UITextField那样子来用它.他会自动处理计算结果,你可以在项目demo中查看.

Localization

Different regions use different symbols as their decimal separator (e.g. .,). By default,VENCalculatorInputView and VENCalculatorInputTextField use the current locale of the device. You can change it by setting the locale property.

不同的地区会用到不同的符号当做他们常用的符号(例如.,).默认情况下,VENCalculatorInputView与VENCalculatorInputTextField是使用了设备当前区域的符号,你可以通过设置locale属性来修改成你想要的.

Testing

We've written some tests. You can run them by opening the project in Xcode and hitting Command-U.

我们已经写了好多测试,你可以在项目中键入 Command - U 来运行测试.

Contributing

We'd love to see your ideas for improving this library! The best way to contribute is by submitting a pull request. We'll do our best to respond to your patch as soon as possible. You can also submit a new GitHub issue if you find bugs or have questions. 

Please make sure to follow our general coding style and add test coverage for new features!

我很欢迎看到你提出新点子来改进这个!最后的贡献你力量的方式是拉一个分支.我们将会尽最大努力来添加上你的修改.当然,你也可以提交你遇到的bug到 new GitHub issue 上面帮助我们改进.

请确保遵循我们的代码风格,然后添加一个新特性的测试样例.

[翻译] VENCalculatorInputView的更多相关文章

  1. 《Django By Example》第五章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag注:大家好,我是新来的翻译, ...

  2. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  3. [翻译]开发文档:android Bitmap的高效使用

    内容概述 本文内容来自开发文档"Traning > Displaying Bitmaps Efficiently",包括大尺寸Bitmap的高效加载,图片的异步加载和数据缓存 ...

  4. 【探索】机器指令翻译成 JavaScript

    前言 前些时候研究脚本混淆时,打算先学一些「程序流程」相关的概念.为了不因太枯燥而放弃,决定想一个有趣的案例,可以边探索边学. 于是想了一个话题:尝试将机器指令 1:1 翻译 成 JavaScript ...

  5. 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...

  6. 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...

  7. 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...

  8. 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?

    0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...

  9. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点

    在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...

随机推荐

  1. Linux 搭建Hadoop集群错误锦集

    一.Hadoop集群配置好后,执行start-dfs.sh后报错,一堆permission denied zf sbin $ ./start-dfs.sh Starting namenodes on ...

  2. Ethereum 源码分析之框架

    accounts 实现了一个高等级的以太坊账户管理     bmt          二进制的默克尔树的实现     build           主要是编译和构建的一些脚本和配置     cmd  ...

  3. 基于VUE的SPA单页应用开发-加载性能篇

    1.基于异步数据的vue页面刷新 先看看基于异步数据的vue页面刷新后,都发生了啥- 如图所示: 图1 基于异步数据的vue页面刷新 网络请求图 步骤如下: step1:请求页面: step2:请求页 ...

  4. swiper在vue中的使用 及 神坑

    一.实例化和导入 import Swiper from 'swiper'; let viewSwiper; let previewSwiper; 在外面声明全局变量,然后在初始化方法里面实例化swip ...

  5. Hibernate框架 hilo 方式配置MySQL 数据库的主键自增

    hilo(高低位方式high low)是hibernate中最常用的一种生成方式,需要一张额外的表保存hi的值.保存hi值的表至少有一条记录(只与第一条记录有关),否则会出现错误.可以跨数据库. 创建 ...

  6. springboot相关资料

    SpringBoot应用 rabbitmq先关资料: rabbitmq详解 springboot+rabbitmq整合示例程 RabbitMQ Exchange Queue RoutingKey Bi ...

  7. BASE64转文件下载

    你可以用HTML 5 注意:返回的文件数据必须是base 64编码的,因为您不能对二进制数据进行JSON编码 在我的AJAX我得到了如下的数据结构: <!DOCTYPE html> < ...

  8. Vertica使用Database Designer创建完整的设计

    Vertica Database Designer 分析逻辑架构,示例数据库可以分析实力查询. 创建可自动部署或手动部署的物理架构设计(一组投射) 任何不具备数据库专业知识的人员均可使用 可以随时运行 ...

  9. Springboot拦截器未起作用

    之前遇到要使用springboot拦截器却始终未生效的状况,查了网上的博客,大抵都是@Component,@Configuration注解未加,或是使用@ComponentScan增加包扫描,但是尝试 ...

  10. Java - String, Stringbuilder, StringBuffer比较

    http://www.cnblogs.com/zuoxiaolong/p/lang1.html