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

自定义键盘

    博客分类:
  • iOS
阅读更多

具体的请参考附件,这里只列出核心功能的代码。

 

- (void)configKeypad {
	if ([self.addView.subviews count] >= 0) {
		for(UIView *mySubview in self.addView.subviews) {
			[mySubview removeFromSuperview];
		}
	}
	for (int i = 0; i < 5; i++) {
		for (int j = 0; j < 6; j++) {
			UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
			button.tag = i + j * 5;
            
			UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 62, 34)];
			[label setTextAlignment:UITextAlignmentCenter];
			if (isNum) {
				if (button.tag < 9) {
					label.text = [NSString stringWithFormat:@"%d", button.tag + 1];
				}else if (button.tag == 9) {
					label.text = @"0";
				}else if (button.tag>9&&button.tag < 26) {
					char labelTitle = '/';
					labelTitle -= button.tag - 10;
					label.text = [NSString stringWithFormat:@"%c", labelTitle];
				}else if (button.tag == 26) {
					label.text = @"@";
				}
			} else {
				if (button.tag < 26) {
					char labelTitle;
					if (isSmallLetter) {
						labelTitle = 'a';
					} else {
						labelTitle = 'A';
					}
					labelTitle += button.tag;
					label.text = [NSString stringWithFormat:@"%c", labelTitle];
				} else if (button.tag == 26) {
					if (isSmallLetter) {
						label.text = @"大写";
					}else {
						label.text = @"小写";
					}
				}
			}
			if (button.tag == 27) {
				label.text = @"切换";
			} else if (button.tag == 28) {
				label.text = @"删除";
			} else if (button.tag == 29){
				label.text = @"确定";
			}
			label.backgroundColor = [UIColor clearColor];
			[button addSubview:label];
			[label release];
			
			[button setImage:[UIImage imageNamed:@"button.png"] forState:UIControlStateNormal];
			[button addTarget:self action:@selector(buttonClickAtIndex:) forControlEvents:UIControlEventTouchUpInside];
			button.frame = CGRectMake(64 * i, 2 + 35 * j, 62, 34);
			[self.addView addSubview:button];
		}
	}	
}

- (void)buttonClickAtIndex:(id)sender {
	UIButton *button = (UIButton *)sender;
	NSString *str = @"";
	if (isNum) {
		if (button.tag < 9) {
			str = [NSString stringWithFormat:@"%d", button.tag + 1];
		} else if (button.tag == 9) {
			str = @"0";
		} else if (button.tag > 9 && button.tag < 26) {
			char labelTitle = '/';
			labelTitle -= button.tag - 10;
			str = [NSString stringWithFormat:@"%c", labelTitle];
		} else if (button.tag == 26) {
			str = @"@";
		}
	} else {
		if (button.tag < 26) {
			char labelTitle;
			if (isSmallLetter) {
				labelTitle = 'a';
			} else {
				labelTitle = 'A';
			}
			labelTitle += button.tag;
			str = [NSString stringWithFormat:@"%c", labelTitle];
		} else if (button.tag == 26) {
			isSmallLetter = !isSmallLetter;
			[self configKeypad];
		}
	}
	
	if (button.tag == 27) {
		isNum = !isNum;
		[self configKeypad];
		return;
	} else if (button.tag == 28) {
		if ([@"" isEqualToString:self.myTextField.text]) {
			return;
		}
		NSMutableString *myText = [NSMutableString stringWithFormat:@"%@", self.myTextField.text];
		NSRange range = {([myText length] - 1), 1};
		[myText deleteCharactersInRange:range];
		self.myTextField.text = myText;
		return;
	} else if (button.tag == 29){
		if ([@"" isEqualToString:self.myTextField.text]) {
			return;
		}
		myLabel.text = self.myTextField.text;
		self.myTextField.text = @"";
		return;
	}
	NSMutableString *myText = [NSMutableString stringWithFormat:@"%@", self.myTextField.text];
	[myText appendFormat:@"%@", str];
	self.myTextField.text = myText;
}

 

示例图:


分享到:
评论

相关推荐

    自定义键盘 身份证键盘

    本文将详细讲解如何实现一个自定义键盘,特别是针对身份证输入的键盘,并结合给定的“键盘Demo”项目进行分析。 一、自定义键盘的概念与应用场景 自定义键盘是指开发者根据需求定制的,不同于系统默认键盘的输入...

    iOS textField弹出自定义键盘(日期时间、省市、国家)

    在iOS开发中,为了提供更个性化的用户体验,开发者有时会需要自定义键盘来替代系统默认的输入法。本文将深入探讨如何在`textField`中实现弹出自定义键盘,特别是日期时间、省市、国家等特定类型的键盘。我们将主要...

    禁止软键盘弹出,自定义键盘

    在移动设备上,软键盘是用户输入文本的常见方式,但在某些特定场景下,例如游戏、全屏应用或自定义输入界面,我们可能需要禁止软键盘自动弹出,并且使用自定义键盘来替代。本教程将详细介绍如何实现这一功能。 首先...

    Android-android自定义键盘支持身份证键盘ip地址键盘数字键盘等

    在Android应用开发中,有时需要根据特定需求提供自定义键盘以替代系统默认的软键盘,例如在输入身份证号码、IP地址或纯数字时。本文将深入探讨如何在Android平台上实现这样的自定义键盘,并涵盖身份证键盘、IP地址...

    安卓TV开发之自定义键盘

    在安卓TV开发中,自定义键盘是一个非常关键的环节,因为TV设备通常没有物理键盘,用户需要通过遥控器或者触摸屏来输入文字和字符。本文将深入探讨如何在Android TV应用中实现自定义键盘,以提供更友好的用户体验。 ...

    Android自定义键盘之中文键盘demo

    在Android平台上,自定义键盘是一项常见的需求,尤其对于需要输入特定字符集的应用,如中文键盘。本示例“Android自定义键盘之中文键盘demo”旨在教你如何为Android应用创建一个功能完备的中文输入键盘。下面将详细...

    android自定义键盘数字键与英文键盘切换

    本教程将探讨如何在Android Studio中实现一个可以切换数字键与英文键盘的自定义键盘,即“android自定义键盘数字键与英文键盘切换”。 首先,创建一个新的Android Studio项目,选择Empty Activity模板。在`res/...

    IOS 车牌号录入 自定义键盘

    自定义键盘的使用能够提供更加便捷且符合用户习惯的输入体验。本篇将深入探讨如何在iOS中实现车牌号录入功能,并使用CollectionView来创建自定义键盘。 首先,我们从“自定义键盘”开始。在iOS中,系统自带的键盘...

    ios自定义键盘附件关闭键盘

    在iOS开发中,自定义键盘是一项常见的需求,它允许开发者为用户提供更为个性化和高效的操作体验。Objective-C作为苹果平台的主要编程语言之一,是实现这一功能的重要工具。本篇将深入探讨如何在iOS应用中创建自定义...

    android自定义键盘 限制车牌号输入

    android自定义键盘 限制车牌号输入 android自定义键盘 限制车牌号输入 android自定义键盘 限制车牌号输入 android自定义键盘 限制车牌号输入 android自定义键盘 限制车牌号输入

    mfc按CEdit编辑框弹出自定义键盘

    1. **创建自定义键盘界面**:首先,你需要设计一个包含数字0-9、退格键和其他必要按键的用户界面。这可以通过在资源编辑器中创建一个新的对话框资源实现,或者使用代码动态创建控件。每个按钮应关联一个消息处理函数...

    一个ReactNative自定义键盘插件

    在这个特定的场景中,我们讨论的是一个React Native的自定义键盘插件,这对于创建特定输入需求或者优化用户体验的应用来说非常有用。这个插件可能提供了更丰富的键盘类型,如数字键盘、符号键盘或自定义布局,以满足...

    Android 车牌号输入自定义键盘demo

    本篇将详细讲解如何实现一个Android车牌号输入的自定义键盘Demo。 首先,车牌号的格式通常包括汉字、字母和数字,因此,自定义键盘需要包含这些元素的按键。我们可以创建一个`KeyboardView`,它是Android提供的用于...

    MCGS自定义键盘

    《MCGS自定义键盘深度解析与应用》 在工业自动化领域,MCGS(Monitor and Control Graphic System)是一款广泛使用的组态软件,它提供了一种便捷的方式来进行人机交互界面的设计。MCGS自定义键盘功能是其强大特性之...

    Android 自定义键盘(完全定制,向上顶布局,点击按钮进行隐藏)

    之前上传的另外一个自定义键盘,并没有实现键盘弹出的时候,布局向上自动调整。(网络上所有的自定义键盘都没有添加自适应的功能,而且布局没这么好看,上一个例子资源链接为:...

    CH552eUSB自定义键盘.zip

    标题中的“CH552eUSB自定义键盘.zip”指的是一个使用沁恒微电子的CH552G单片机开发的自定义USB键盘项目,该键盘具备多媒体按键功能。这个压缩包文件包含了实现这一项目的相关资源。 描述部分提到,这款自定义小键盘...

    自定义键盘光标显示

    在Android开发中,自定义键盘是一项常见的需求,特别是在创建输入法或者特定应用界面时。本文将深入探讨如何在Android中实现一个自定义键盘,并且添加动态光标显示的功能。我们将从以下几个方面进行详细讲解: 1. *...

    iphone 自定义键盘实例

    在iOS平台上,自定义键盘(通常称为第三方键盘)允许开发者为用户提供独特的输入体验,与系统默认的键盘有所区别。这个“iphone 自定义键盘实例”是一个实际的项目,可以帮助开发者了解如何创建自己的键盘应用。虽然...

    Android高级应用源码-自定义键盘.rar

    在Android开发中,自定义键盘是一项常见的需求,它允许开发者为特定的应用场景提供更加个性化或功能丰富的输入方式。"Android高级应用源码-自定义键盘.rar"是一个包含自定义键盘实现的源代码压缩包,适合Android...

    android 自定义键盘 原理以及代码

    在Android开发中,自定义键盘是一项常见的需求,它允许用户在特定场景下提供更个性化的输入体验。本文将深入探讨自定义键盘的工作原理,并通过代码示例帮助你理解和实现这一功能。 首先,我们需要理解Android系统...

Global site tag (gtag.js) - Google Analytics