`
jsntghf
  • 浏览: 2532790 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

给数字键盘加上Done按键

    博客分类:
  • iOS
阅读更多

默认的数字键盘没有Done按键,如下图:


 

KeyboardViewController.h

 

#import <UIKit/UIKit.h>

@interface KeyboardViewController: UIViewController {
    UITextField *textField;
}

@end

 

KeyboardViewController.m

 

#import "KeyboardViewController.h"

@implementation KeyboardViewController

- (void)loadView {
    self.view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
    self.view.backgroundColor = [UIColor groupTableViewBackgroundColor];
    
    textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 200, 300, 26)];
    textField.borderStyle = UITextBorderStyleRoundedRect;
    textField.keyboardType = UIKeyboardTypeNumberPad;
    textField.returnKeyType = UIReturnKeyDone;
    textField.textAlignment = UITextAlignmentLeft;
    textField.text = @"12345";
    
    [self.view addSubview:textField];
    
    [textField release];
    
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(keyboardWillShow:) 
                                                 name:UIKeyboardDidShowNotification
                                               object:nil];
}

- (void)keyboardWillShow:(NSNotification *)note {  
    UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
    doneButton.frame = CGRectMake(0, 163, 106, 53);
    doneButton.adjustsImageWhenHighlighted = NO;
    [doneButton setImage:[UIImage imageNamed:@"DoneUp.png"] forState:UIControlStateNormal];
    [doneButton setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateHighlighted];
    [doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];
    
    UIWindow *tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
    UIView *keyboard;
    for(int i = 0; i < [tempWindow.subviews count]; i++) {
        keyboard = [tempWindow.subviews objectAtIndex:i];
		if(([[keyboard description] hasPrefix:@"<UIPeripheralHostView"] == YES) || ([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES))
            [keyboard addSubview:doneButton];
    }
}

- (void)doneButton:(id)sender {
    [textField resignFirstResponder];
}

- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    [textField release];
    [super dealloc];
}

@end

 

效果图:


分享到:
评论

相关推荐

    自定义数字键盘,添加DONE按钮

    "自定义数字键盘,添加DONE按钮"这个主题就是关于如何在iPhone4上,使用Xcode 4.1版本创建一个带有"DONE"按钮的专用数字键盘。这个过程涉及到UI设计、事件处理以及键盘交互等多个方面。 首先,我们要了解iOS中的...

    iPhone在数字键盘上添加完成按键

    在iOS开发中,为iPhone的数字键盘添加一个“完成”按键可以极大提升用户输入体验,尤其是在需要快速输入一串数字并确认的情况下。这个功能可以通过创建自定义键盘扩展来实现,以下将详细介绍如何进行操作。 首先,...

    自定义数字键盘

    在移动应用开发中,尤其是涉及到用户输入数字的场景,如密码输入、电话号码输入等,开发者经常需要自定义数字键盘来提供更友好的用户体验。"自定义数字键盘"这一主题,通常涵盖以下几个关键知识点: 1. **用户界面...

    ios 自定义数字软键盘

    本主题将深入探讨如何为iPad开发一个自定义数字键盘,特别是使用Storyboard来实现这一功能。 首先,我们需要理解iOS中的键盘类型。默认情况下,iOS提供多种键盘类型,如ASCII Capable、Number Pad、Phone Pad等。...

    3DONE电子教材

    ### 3DONE电子教材知识点概览 #### 第一章 初识三维实体设计 ##### 第一节 三维实体设计简介 - **三维实体设计的概念**:三维实体设计是一种利用计算机软件来创建三维模型的设计方法,它能够让设计目标更加立体、...

    3done实体设计案例:杯子制作.pdf

    3done实体设计案例:杯子制作.pdf 本文将对3done实体设计案例中的杯子制作进行详细分析,涵盖旋转、扫掠、渲染、贴图等技术,并对杯子制作中的关键步骤进行详细解释。 一、旋转技术 在3done实体设计中,旋转技术...

    3DOne2015jtb_31523免登陆版.zip

    3DOne是由中望软件公司开发的一款针对初学者和学生的3D建模软件,它以其易用性和丰富的功能深受用户喜爱。2015年发布的这个特别版本,省去了常规的用户登录需求,使得软件的启动和使用更为直接,无需担心忘记密码...

    ios数字键盘添加完成按钮

    2. **使用UIKeyboardTypeASCIICapable**:尽管这不是一个纯数字键盘,但可以展示一个带有“Done”按钮的标准键盘。将UITextField的`keyboardType`属性设置为UIKeyboardTypeASCIICapable,然后重写`...

    Android 监听键盘回车键事件

    我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面;在点击搜索框的时候,点击右下角的search符号键可以进行搜索;或者在...

    3Done 入门课程《矿泉水瓶》制作

    3Done 入门课程《矿泉水瓶》制作

    S7-1200采用PTO控制第三方伺服回原点时,动作完成后为什么Done位没有置1?.docx

    在本问题中,用户遇到了在PTO控制第三方伺服回原点后,"Done"位没有置1的情况,这可能与指令执行的机制有关。 首先,"Done"位通常是用于指示一个特定任务或动作是否已经完成的标志。在S7-1200的PLC程序中,当一个...

    3Done-帆船的制作教程.pdf

    3Done-帆船的制作教程.pdf

    ios-自定义数字键盘.zip

    在给定的资源“ios-自定义数字键盘.zip”中,包含了一个名为“APNumberPad”的项目,它专门用于实现这种自定义数字键盘功能。下面将详细介绍这个自定义数字键盘的实现原理、使用方法以及可能的应用场景。 首先,...

    按键消抖代码

    Verilog HDL语言实现按键消抖 assign key_done = (dout1 | dout2 | dout3); //按键消抖输出

    基于Xilinx芯片的FPGA的DONE信号上拉电阻阻值分析.pdf

    在此基础上,本文通过测试结果,深入分析了上拉电阻值选择的重要性,并给出了基于实验的建议,即在大多数情况下应选择330欧姆作为 DONE 信号的上拉电阻值。 最后,文章给出了FPGA的加载序列和上电时序的图示,展示...

    Jquery $when done then的用法详解

    对于$.ajax请求来说,如果层级比较多,程序看起来会比较乱,而为了解决这种问题,才有了$when…done…fail…then的封装,它将$.ajax这嵌套结构转成了顺序平行的结果,向下面的$.ajax写法,看起来很乱 $.ajax({ url...

    IOS应用源码之自定义数字键盘.zip

    在iOS应用开发中,自定义数字键盘是一种常见的需求,它可以让开发者根据具体的应用场景和用户交互设计提供更个性化的输入体验。本资源“IOS应用源码之自定义数字键盘.zip”提供了一个完整的示例,帮助开发者理解如何...

    linear algebra done wrong

    ### 线性代数基础:《Linear Algebra Done Wrong》概览 #### 一、书籍简介与背景 《Linear Algebra Done Wrong》是一本由布朗大学数学系教授谢尔盖·特雷尔(Sergei Treil)编写的线性代数教材。这本书面向的是...

    Linear Algebra Done Wrong.pdf

    ### 线性代数概览与《Linear Algebra Done Wrong》解析 #### 一、线性代数基础知识 **线性代数**(Linear Algebra)是一门研究向量空间(也称为线性空间)以及在其上的线性变换的数学分支。它是现代数学的基础之一,...

Global site tag (gtag.js) - Google Analytics