关闭

自定义数字键盘

标签: 自定义数字键盘
186人阅读 评论(0) 收藏 举报
分类:

上周公司项目 要求做支付充值 弹出的数字键盘 可以跟支付宝一样,系统自带的外观不好看,要想做到像支付宝那样,想了想也就自己自定义做了。

做完后发现也不难。

UITextField 有一个inputView的属性 这个属性 就是弹出键盘的View,将自定义的键盘的View赋值给inputView 实现了 弹出自定义键盘。

这里写图片描述

实现的步骤如下:
用一个UIView 搭建键盘 UI

//  CZKeyBoardView.h
//
//  Created by  location on 16/9/20.

#import <UIKit/UIKit.h>

@class CZKeyBoardView;

typedef enum {
    CZKeyBoardBtnTypeHid = 11,//隐藏键盘
    CZKeyBoardBtnTypeDelete = 12,//删除
    CZKeyBoardBtnTypeSure = 13//确定

}CZKeyBoardBtnType;

@protocol CZKeyBoardViewDelegate <NSObject>

- (void)keyBoardView:(CZKeyBoardView *)keyBoardView didClickSureBtn:(UIButton *)btn;

@end


@interface CZKeyBoardView : UIView

@property (nonatomic,strong) UITextField *textF;

+ (instancetype)shareKeyBoard;

@property (nonatomic,weak) id<CZKeyBoardViewDelegate>delegate;

界面实现比较简单,在点m文件中,记得声明一个UITextField的属性

@property (nonatomic, weak) UITextField<UITextInput> *textInput;

监听通知 UITextFieldTextDidBeginEditingNotification 实现该通知的方法

- (void)inputTextAction:(NSNotification *)notifacation
{
    self.textInput = notifacation.object;
}

该通知实现 我的理解是 替换系统的输入 换成自定义的输入

接下来就是实现相应的输入文本 添加 ,删除 ,确定
通过查看UITextInput 的协议文件 我们发现 它有如下几个属性
这里写图片描述

通过了解得知,

- (void)insertText:(NSString *)text;

是将文本不断添加插入

- (void)deleteBackward;

是将文本从后往前按照长度为1删除

所以实现相应点击按钮的点击事件
点击数字实现文本添加:点击删除实现文本删除
代码如下:

if (btn.titleLabel.text.length == 1) {
        [self.textInput insertText:btn.titleLabel.text];
    }

    switch (btn.tag) {
        case CZKeyBoardBtnTypeHid:
            [self.textInput endEditing:YES];
            break;
        case CZKeyBoardBtnTypeDelete:
            [self.textInput deleteBackward];
            break;
        case CZKeyBoardBtnTypeSure:
            if ([self.delegate respondsToSelector:@selector(keyBoardView:didClickSureBtn:)]) {
                [self.delegate keyBoardView:self didClickSureBtn:btn];
            }
            [self.textInput endEditing:YES];
            break;
        default:
            break;
    }

这样自定义的数字键盘就做好了

0
0
查看评论

android自定义view(自定义数字键盘)

序言:在上周的项目中,需要做一个密码锁的功能,然后密码下面还得有键盘,就类似支付宝支付的时候那样:当然了,我们项目的需求简单点,纯数字的就可以了,然后上周就百度了自定义键盘,随便找了一个修改修改就用到项目中去了。多谢这位简友:[Android] 自定义输入支付密码的软键盘今天自己抽空写了一个自定义V...
  • lovecyg123
  • lovecyg123
  • 2017-02-05 17:46
  • 618

Android 自定义数字键盘(一)

看了一个自定义键盘的Demo感觉比网上那种自己绘制的那种要方便很多,就学习了一下,刚开始觉得应该挺麻烦的,还继承一个KeyBoardView,不过学习完了觉得还好,至少还能看懂,另外感觉收获还是挺多的。自定义键盘键盘布局先从简单的可以理解的看吧,循序渐进 horizontalGap:按键间的水平间...
  • danfengw
  • danfengw
  • 2016-12-22 18:11
  • 3454

Android自定义数字键盘(支持随机数字)

前言也是最近想写个demo玩玩,不知道写哪个方面的好,就随便写了一个自定义的键盘,比较简单,但是做了封装,支持jitpack库依赖(这也是我一次开源自己的库,比较水的一个开源项目,仅供学习使用)。概述主要完成了以下功能: 1.自定义数字键盘 2.切换到随机数字键盘 3.自定义确定和删除等键(向...
  • Simon_Crystin
  • Simon_Crystin
  • 2017-09-06 15:49
  • 1031

Android 仿「微信」自定义数字键盘

最终效果:实现这个自定义键盘的思路很简单: 1. 要写出一个数字键盘的布局; 2. 与 Edittext 结合使用,对每个按键的点击事件进行处理; 3. 禁用系统软键盘。有了思路,实现起来就不难了。1. 实现键盘的 xml 布局网格样式的布局用 GridView 或者 RecyclerView...
  • qq_24867873
  • qq_24867873
  • 2017-06-27 10:43
  • 647

android自定义控件-----自定义数字价格键盘

饿饿,好久没写android了,最近看到数字价格键盘挺有意思的就写来玩玩,省的做游戏java方面都要手生了!(话不多说,开始了)首先给图吧(绅士礼仪0。0)数字随机键盘价格数字键盘全键盘一、画键盘的xml首先我们要在 创建一个xml<?xml version="1.0"...
  • li15225271052
  • li15225271052
  • 2017-08-27 18:01
  • 535

Android 自定义数字键盘(二)随机数字

先看Android 自定义数字键盘(一) 将下面部分代码复制到自定义的继承KeyboardView的类里面,使用时设置是否为true就可以了private List<Character> keylabels= Arrays.asList('0','1',...
  • danfengw
  • danfengw
  • 2016-12-23 11:02
  • 1228

Android自定义键盘:数字键盘和字母键盘

在项目中,产品对于输入方式会有特殊的要求,需要对输入方式增加特定的限制,这就需要采用自定义键盘。本文主要讲述数字键盘和字母键盘的自定义实现。 项目地址:https://github.com/xudjx/djkeyboard 键盘效果: 自定义键盘的实现步骤如下: 自定义CustomKeybo...
  • xudjx
  • xudjx
  • 2017-08-03 18:25
  • 497

自定义数字键盘(固定button键盘)

最近做支付相关软件,老板不想用系统的键盘,要自己写一个固定的按钮做键盘,感觉一个一个按钮加上去 挺麻烦的,而且有好几个页面都要使用这个键盘,做为程序员,我来封装一下。话不多说,直接上核心代码,主要是一个fragment和一个layout 1:MyKeyBoardFragment:原理就是点击按钮后...
  • lianwanfei
  • lianwanfei
  • 2015-08-28 14:53
  • 899

iOS swift 自定制控件(数字键盘)

最近学习ios编程,启用了swift语言,非常高效的一门y
  • backpackcsdn
  • backpackcsdn
  • 2014-10-17 20:09
  • 663

android 自定义纯数字键盘输入

很久没更新博客了,最近在做一个新项目,遇到了很多坑,现将遇到的坑学到的东西一个个记录下来,方便自己和大家共同学习。后面还会抽出时间将项目中遇到的其他问题一一上传分析。项目中需要使用自定义数字键盘输入金额,效果图如下最初想偷懒在网上找个 demo copy 进项目,无奈网上的坑一个比一个多,还是自己瞎...
  • LiuWaiter
  • LiuWaiter
  • 2017-06-30 10:59
  • 598
    个人资料
    • 访问:14704次
    • 积分:590
    • 等级:
    • 排名:千里之外
    • 原创:46篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类