原文链接:https://blog.csdn.net/laodeng0512/article/details/75529630
实现:
//
// PassTextFild.h
// VisionField
//
// Created by 邓 连喜 on 14-8-22.
// Copyright (c) 2014年 邓 连喜. All rights reserved.
//
#import <UIKit/UIKit.h>
@protocol PassTextFieldViewDelegate <NSObject>
-(void)passTextFieldSearch:(NSString *)searchString;
@end
@interface PassTextFild : UITextField
{
UIView *keyBoardView;
UIButton *pressButtonCapital;
UIImageView *bacDaXieImage;
}
@property(nonatomic,strong)UIView *otherKeyBoardView;
@property(nonatomic,weak)id<PassTextFieldViewDelegate>delegate;
@end
//
// PassTextFild.m
// VisionField
//
// Created by 邓 连喜 on 14-8-22.
// Copyright (c) 2014年 邓 连喜. All rights reserved.
//
#import "PassTextFild.h"
#define FIT_X [UIScreen mainScreen].bounds.size.width/320.000
#define iPhone4 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)
#define IS_iPhoneX ([UIScreen mainScreen].bounds.size.width >= 375 && [UIScreen mainScreen].bounds.size.height >= 812)
@implementation PassTextFild
@synthesize otherKeyBoardView=_otherKeyBoardView;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self loadBegin];
}
return self;
}
-(void)loadBegin
{
keyBoardView =[[UIView alloc]initWithFrame:CGRectMake(0, IS_iPhoneX ? 480-220 - 30 : 480-220, 320, 240)];
if (iPhone4) {
keyBoardView.frame =CGRectMake(0, 480-220, 320, 240);
}else{
keyBoardView.frame =CGRectMake(0, 568*FIT_X- (IS_iPhoneX ? 270 * FIT_X : 240 * FIT_X), 320*FIT_X, IS_iPhoneX ? 270*FIT_X : 240*FIT_X);
}
keyBoardView.backgroundColor =[UIColor colorWithPatternImage:[UIImage imageNamed:@"bgs.png"]];
for (int i=0; i<10; i++)
{
UIButton *pressButton =[UIButton buttonWithType:UIButtonTypeCustom];
[pressButton setBackgroundImage:[UIImage imageNamed:@"anniu1.png"] forState:UIControlStateNormal];
[pressButton setBackgroundImage:[UIImage imageNamed:@"anniu1_select.png"] forState:UIControlStateHighlighted];
pressButton.tag =i+1;
pressButton.frame =[self frameForSettingButtonUnderImage:i];
[pressButton addTarget:self action:@selector(goPress:) forControlEvents:UIControlEventTouchUpInside];
[keyBoardView addSubview:pressButton];
UILabel *descripSecLabel =[[UILabel alloc] init];
descripSecLabel.frame =pressButton.frame;
descripSecLabel.backgroundColor =[UIColor clearColor];
descripSecLabel.textAlignment =NSTextAlignmentCenter;
descripSecLabel.font =[UIFont systemFontOfSize:18*FIT_X];
descripSecLabel.text =[NSString stringWithFormat:@"%d",i+1];
if (i==9) {
descripSecLabel.text =@"0";
}
[keyBoardView addSubview:descripSecLabel];
}
//减
UIButton *pressButtondelete =[UIButton buttonWithType:UIButtonTypeCustom];
pressButtondelete.frame =CGRectMake(257*FIT_X, 5*FIT_X, 58*FIT_X, 55*FIT_X);
[pressButtondelete setBackgroundImage:[UIImage imageNamed:@"anniu2.png"] forState:UIControlStateNormal];
[pressButtondelete setBackgroundImage:[UIImage imageNamed:@"anniu2_select.png"] forState:UIControlStateHighlighted];
[pressButtondelete addTarget:self action:@selector(deleteTextField) forControlEvents:UIControlEventTouchUpInside];
[keyBoardView addSubview:pressButtondelete];
UIImageView *backGrodImage =[[UIImageView alloc]initWithFrame:CGRectMake(270*FIT_X, 18*FIT_X, 32*FIT_X, 28*FIT_X)];
backGrodImage.image =[UIImage imageNamed:@"tu2 (3).png"];
[keyBoardView addSubview:backGrodImage];
//清空
UIButton *pressButtonClearAll =[UIButton buttonWithType:UIButtonTypeCustom];
pressButtonClearAll.frame =CGRectMake(257*FIT_X, 65*FIT_X, 58*FIT_X, 55*FIT_X);
[pressButtonClearAll setBackgroundImage:[UIImage imageNamed:@"anniu2.png"] forState:UIControlStateNormal];
[pressButtonClearAll setBackgroundImage:[UIImage imageNamed:@"anniu2_select.png"] forState:UIControlStateHighlighted];
[pressButtonClearAll addTarget:self action:@selector(clearAllTextField) forControlEvents:UIControlEventTouchUpInside];
[keyBoardView addSubview:pressButtonClearAll];
UILabel *pressButtonClearAllLabel =[[UILabel alloc] init];
pressButtonClearAllLabel.frame =pressButtonClearAll.frame;
pressButtonClearAllLabel.backgroundColor =[UIColor clearColor];
pressButtonClearAllLabel.textColor =[UIColor whiteColor];
pressButtonClearAllLabel.textAlignment =NSTextAlignmentCenter;
pressButtonClearAllLabel.font =[UIFont systemFontOfSize:18*FIT_X];
pressButtonClearAllLabel.text =@"清空";
[keyBoardView addSubview:pressButtonClearAllLabel];
//隐藏
UIButton *pressButtonReturn =[UIButton buttonWithType:UIButtonTypeCustom];
pressButtonReturn.frame =CGRectMake(257*FIT_X, 125*FIT_X, 58*FIT_X, 55*FIT_X);
[pressButtonReturn setBackgroundImage:[UIImage imageNamed:@"anniu2.png"] forState:UIControlStateNormal];
[pressButtonReturn setBackgroundImage:[UIImage imageNamed:@"anniu2_select.png"] forState:UIControlStateHighlighted];
[pressButtonReturn addTarget:self action:@selector(goReturn) forControlEvents:UIControlEventTouchUpInside];
[keyBoardView addSubview:pressButtonReturn];
UILabel *pressButtonReturnLabel =[[UILabel alloc] init];
pressButtonReturnLabel.frame =pressButtonReturn.frame;
pressButtonReturnLabel.backgroundColor =[UIColor clearColor];
pressButtonReturnLabel.textColor =[UIColor whiteColor];
pressButtonReturnLabel.textAlignment =NSTextAlignmentCenter;
pressButtonReturnLabel.font =[UIFont systemFontOfSize:18*FIT_X];
pressButtonReturnLabel.text =@"隐藏";
[keyBoardView addSubview:pressButtonReturnLabel];
//确定
UIButton *pressButtonSearch =[UIButton buttonWithType:UIButtonTypeCustom];
pressButtonSearch.frame =CGRectMake(257*FIT_X, 185*FIT_X, 58*FIT_X, 55*FIT_X);
[pressButtonSearch setBackgroundImage:[UIImage imageNamed:@"anniu2.png"] forState:UIControlStateNormal];
[pressButtonSearch setBackgroundImage:[UIImage imageNamed:@"anniu2_select.png"] forState:UIControlStateHighlighted];
[pressButtonSearch addTarget:self action:@selector(searchAllTextField) forControlEvents:UIControlEventTouchUpInside];
[keyBoardView addSubview:pressButtonSearch];
UILabel *pressButtonSearchLabel =[[UILabel alloc] init];
pressButtonSearchLabel.frame =pressButtonSearch.frame;
pressButtonSearchLabel.backgroundColor =[UIColor clearColor];
pressButtonSearchLabel.textColor =[UIColor whiteColor];
pressButtonSearchLabel.textAlignment =NSTextAlignmentCenter;
pressButtonSearchLabel.font =[UIFont systemFontOfSize:18*FIT_X];
pressButtonSearchLabel.text =@"确定";
[keyBoardView addSubview:pressButtonSearchLabel];
//空格
UIButton *pressButtonZeroTwo =[UIButton buttonWithType:UIButtonTypeCustom];
pressButtonZeroTwo.frame =CGRectMake(194*FIT_X, 185*FIT_X, 58*FIT_X, 55*FIT_X);
[pressButtonZeroTwo setBackgroundImage:[UIImage imageNamed:@"anniu2.png"] forState:UIControlStateNormal];
[pressButtonZeroTwo setBackgroundImage:[UIImage imageNamed:@"anniu2_select.png"] forState:UIControlStateHighlighted];
pressButtonZeroTwo.tag =24;
[pressButtonZeroTwo addTarget:self action:@selector(goPressOtherButtons:) forControlEvents:UIControlEventTouchUpInside];
[keyBoardView addSubview:pressButtonZeroTwo];
UILabel *pressButtonZeroTwoLabel =[[UILabel alloc] init];
pressButtonZeroTwoLabel.frame =pressButtonZeroTwo.frame;
pressButtonZeroTwoLabel.backgroundColor =[UIColor clearColor];
pressButtonZeroTwoLabel.textColor =[UIColor whiteColor];
pressButtonZeroTwoLabel.textAlignment =NSTextAlignmentCenter;
pressButtonZeroTwoLabel.font =[UIFont systemFontOfSize:18*FIT_X];
pressButtonZeroTwoLabel.text =@"空格";
[keyBoardView addSubview:pressButtonZeroTwoLabel];
//下划线
UIButton *pressButtonThreeZero =[UIButton buttonWithType:UIButtonTypeCustom];
pressButtonThreeZero.frame =CGRectMake(68*FIT_X, 185*FIT_X, 58*FIT_X, 55*FIT_X);
[pressButtonThreeZero setBackgroundImage:[UIImage imageNamed:@"anniu2.png"] forState:UIControlStateNormal];
[pressButtonThreeZero setBackgroundImage:[UIImage imageNamed:@"anniu2_select.png"] forState:UIControlStateHighlighted];
pressButtonThreeZero.tag =23;
[pressButtonThreeZero addTarget:self action:@selector(goPressOtherButtons:) forControlEvents:UIControlEventTouchUpInside];
[keyBoardView addSubview:pressButtonThreeZero];
UILabel *pressButtonThreeZeroLabel =[[UILabel alloc] init];
pressButtonThreeZeroLabel.frame =pressButtonThreeZero.frame;
pressButtonThreeZeroLabel.backgroundColor =[UIColor clearColor];
pressButtonThreeZeroLabel.textColor =[UIColor whiteColor];
pressButtonThreeZeroLabel.textAlignment =NSTextAlignmentCenter;
pressButtonThreeZeroLabel.font =[UIFont systemFontOfSize:18*FIT_X];
pressButtonThreeZeroLabel.text =@"_";
[keyBoardView addSubview:pressButtonThreeZeroLabel];
//ABC
UIButton *pressButtonABC =[UIButton buttonWithType:UIButtonTypeCustom];
pressButtonABC.frame =CGRectMake(5*FIT_X, 185*FIT_X, 58*FIT_X, 55*FIT_X);
[pressButtonABC setBackgroundImage:[UIImage imageNamed:@"anniu2.png"] forState:UIControlStateNormal];
[pressButtonABC setBackgroundImage:[UIImage imageNamed:@"anniu2_select.png"] forState:UIControlStateHighlighted];
[pressButtonABC addTarget:self action:@selector(changeAbcKeyBoard) forControlEvents:UIControlEventTouchUpInside];
[keyBoardView addSubview:pressButtonABC];
UILabel *pressButtonABCLabel =[[UILabel alloc] init];
pressButtonABCLabel.frame =pressButtonABC.frame;
pressButtonABCLabel.backgroundColor =[UIColor clearColor];
pressButtonABCLabel.textColor =[UIColor whiteColor];
pressButtonABCLabel.textAlignment =NSTextAlignmentCenter;
pressButtonABCLabel.font =[UIFont systemFontOfSize:18*FIT_X];
pressButtonABCLabel.text =@"ABC";
[keyBoardView addSubview:pressButtonABCLabel];
//,
UIButton *pressButtonSixZero=[UIButton buttonWithType:UIButtonTypeCustom];
pressButtonSixZero.frame =CGRectMake(5*FIT_X, 5*FIT_X, 58*FIT_X, 55*FIT_X);
[pressButtonSixZero setBackgroundImage:[UIImage imageNamed:@"anniu2.png"] forState:UIControlStateNormal];
[pressButtonSixZero setBackgroundImage:[UIImage imageNamed:@"anniu2_select.png"] forState:UIControlStateHighlighted];
pressButtonSixZero.tag =20;
[pressButtonSixZero addTarget:self action:@selector(goPressOtherButtons:) forControlEvents:UIControlEventTouchUpInside];
[keyBoardView addSubview:pressButtonSixZero];
UILabel *pressButtonSixZeroLabel =[[UILabel alloc] init];
pressButtonSixZeroLabel.frame =pressButtonSixZero.frame;
pressButtonSixZeroLabel.backgroundColor =[UIColor clearColor];
pressButtonSixZeroLabel.textColor =[UIColor whiteColor];
pressButtonSixZeroLabel.textAlignment =NSTextAlignmentCenter;
pressButtonSixZeroLabel.font =[UIFont systemFontOfSize:18*FIT_X];
pressButtonSixZeroLabel.text =@",";
[keyBoardView addSubview:pressButtonSixZeroLabel];
//.
UIButton *pressButtonSixOne =[UIButton buttonWithType:UIButtonTypeCustom];
pressButtonSixOne.frame =CGRectMake(5*FIT_X, 65*FIT_X, 58*FIT_X, 55*FIT_X);
[pressButtonSixOne setBackgroundImage:[UIImage imageNamed:@"anniu2.png"] forState:UIControlStateNormal];
[pressButtonSixOne setBackgroundImage:[UIImage imageNamed:@"anniu2_select.png"] forState:UIControlStateHighlighted];
pressButtonSixOne.tag =21;
[pressButtonSixOne addTarget:self action:@selector(goPressOtherButtons:) forControlEvents:UIControlEventTouchUpInside];
[keyBoardView addSubview:pressButtonSixOne];
UILabel *pressButtonSixOneLabel =[[UILabel alloc] init];
pressButtonSixOneLabel.frame =pressButtonSixOne.frame;
pressButtonSixOneLabel.backgroundColor =[UIColor clearColor];
pressButtonSixOneLabel.textColor =[UIColor whiteColor];
pressButtonSixOneLabel.textAlignment =NSTextAlignmentCenter;
pressButtonSixOneLabel.font =[UIFont systemFontOfSize:18*FIT_X];
pressButtonSixOneLabel.text =@".";
[keyBoardView addSubview:pressButtonSixOneLabel];
//:
UIButton *pressButtonZeroZero =[UIButton buttonWithType:UIButtonTypeCustom];
pressButtonZeroZero.frame =CGRectMake(5*FIT_X, 125*FIT_X, 58*FIT_X, 55*FIT_X);
[pressButtonZeroZero setBackgroundImage:[UIImage imageNamed:@"anniu2.png"] forState:UIControlStateNormal];
[pressButtonZeroZero setBackgroundImage:[UIImage imageNamed:@"anniu2_select.png"] forState:UIControlStateHighlighted];
pressButtonZeroZero.tag =22;
[pressButtonZeroZero addTarget:self action:@selector(goPressOtherButtons:) forControlEvents:UIControlEventTouchUpInside];
[keyBoardView addSubview:pressButtonZeroZero];
UILabel *pressButtonZeroZeroLabel =[[UILabel alloc] init];
pressButtonZeroZeroLabel.frame =pressButtonZeroZero.frame;
pressButtonZeroZeroLabel.backgroundColor =[UIColor clearColor];
pressButtonZeroZeroLabel.textColor =[UIColor whiteColor];
pressButtonZeroZeroLabel.textAlignment =NSTextAlignmentCenter;
pressButtonZeroZeroLabel.font =[UIFont systemFontOfSize:18*FIT_X];
pressButtonZeroZeroLabel.text =@":";
[keyBoardView addSubview:pressButtonZeroZeroLabel];
self.inputView =keyBoardView;
}
-(void)goPress:(UIButton *)btn
{
NSInteger number = btn.tag;
if (number==10) {
number =0;
}
NSMutableString* mutableString = [[NSMutableString alloc] initWithFormat:@"%@%ld", self.text, number];
self.text = mutableString;
[self searchAllTextField];
}
-(void)goPressOtherButtons:(UIButton *)btn
{
NSString *addString=@"";
if (btn.tag==20) {
addString =@",";
}
else if (btn.tag==21)
{
addString =@".";
}
else if (btn.tag==22)
{
addString =@":";
}
else if (btn.tag==23)
{
addString =@"_";
}
else if (btn.tag==24)
{
addString =@" ";
}
NSMutableString* mutableString = [[NSMutableString alloc] initWithFormat:@"%@%@", self.text, addString];
self.text = mutableString;
[self searchAllTextField];
}
//删除一位
-(void)deleteTextField
{
NSMutableString* mutableString = [[NSMutableString alloc] initWithFormat:@"%@", self.text];
if ([mutableString length] > 0) {
NSRange tmpRange;
tmpRange.location = [mutableString length] - 1;
tmpRange.length = 1;
[mutableString deleteCharactersInRange:tmpRange];
}
self.text = mutableString;
[self searchAllTextField];
}
//清除
-(void)clearAllTextField
{
self.text =@"";
}
//确定
-(void)searchAllTextField
{
if ([self.text length]>0)
{
if (self.delegate) {
[self.delegate passTextFieldSearch:self.text];
}
}
// else
// {
[self resignFirstResponder];
// UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"请先输入需要确定的内容"
// message:@""
// delegate:nil
// cancelButtonTitle:@"知道了"
// otherButtonTitles:nil];
// [alert show];
// [self performSelector:@selector(removeAlertView:) withObject:alert afterDelay:1.5f];
// }
}
//alertView 自动消失;
//- (void)removeAlertView:(UIAlertView *)alertView
//{
// [alertView dismissWithClickedButtonIndex:[alertView cancelButtonIndex] animated:YES];
// [alertView removeFromSuperview];
//}
//隐藏
-(void)goReturn
{
[self resignFirstResponder];
}
-(CGRect)frameForSettingButtonUnderImage:(NSInteger)index
{
CGFloat x;
CGFloat y;
int indexHeight;
int height;
indexHeight =60*FIT_X;
height =5*FIT_X;
if(index%3==0)
{
x =68*FIT_X;
y =height +index/3 *indexHeight;
}
else if (index%3==1)
{
x =131*FIT_X;
y =height +index/3 *indexHeight;
}
else
{
x =194*FIT_X;
y =height +index/3*indexHeight;
}
if (index==9)
{
return CGRectMake(131*FIT_X, 185*FIT_X, 58*FIT_X, 55*FIT_X);
}
return CGRectMake(x,y,58*FIT_X,55*FIT_X);
}
//切换到abc键盘
-(void)changeAbcKeyBoard
{
if (!self.otherKeyBoardView) {
self.otherKeyBoardView =[[UIView alloc]initWithFrame:CGRectMake(0, 568-240, 320, 220)];
if (iPhone4) {
self.otherKeyBoardView.frame =CGRectMake(0, 480-220, 320, 220);
}else{
self.otherKeyBoardView.frame =CGRectMake(0, 568*FIT_X- (IS_iPhoneX ? 270 * FIT_X : 240 * FIT_X), 320*FIT_X, (IS_iPhoneX ? 250 * FIT_X : 220*FIT_X));
}
self.otherKeyBoardView.backgroundColor =[UIColor colorWithPatternImage:[UIImage imageNamed:@"bgs.png"]];
//第一排
for (int i=0; i<10; i++)
{
UIButton *pressButton =[UIButton buttonWithType:UIButtonTypeCustom];
[pressButton setBackgroundImage:[UIImage imageNamed:@"tu1 (2).png"] forState:UIControlStateNormal];
[pressButton setBackgroundImage:[UIImage imageNamed:@"tu1 2.png"] forState:UIControlStateHighlighted];
pressButton.tag =i+100;
pressButton.frame =CGRectMake(1+i*32*FIT_X, 5*FIT_X, 34*FIT_X, 48*FIT_X);
[pressButton addTarget:self action:@selector(goPressSecondKeyButtons:) forControlEvents:UIControlEventTouchUpInside];
[self.otherKeyBoardView addSubview:pressButton];
UILabel *descripSecLabel =[[UILabel alloc] init];
descripSecLabel.frame =pressButton.frame;
descripSecLabel.backgroundColor =[UIColor clearColor];
descripSecLabel.textAlignment =NSTextAlignmentCenter;
descripSecLabel.font =[UIFont systemFontOfSize:18*FIT_X];
switch (i)
{
case 0:
descripSecLabel.text =@"Q";
break;
case 1:
descripSecLabel.text =@"W";
break;
case 2:
descripSecLabel.text =@"E";
break;
case 3:
descripSecLabel.text =@"R";
break;
case 4:
descripSecLabel.text =@"T";
break;
case 5:
descripSecLabel.text =@"Y";
break;
case 6:
descripSecLabel.text =@"U";
break;
case 7:
descripSecLabel.text =@"I";
break;
case 8:
descripSecLabel.text =@"O";
break;
case 9:
descripSecLabel.text =@"P";
break;
default:
break;
}
[self.otherKeyBoardView addSubview:descripSecLabel];
}
//第二排
for (int i=0; i<9; i++)
{
UIButton *pressButton =[UIButton buttonWithType:UIButtonTypeCustom];
[pressButton setBackgroundImage:[UIImage imageNamed:@"tu1 (2).png"] forState:UIControlStateNormal];
[pressButton setBackgroundImage:[UIImage imageNamed:@"tu1 2.png"] forState:UIControlStateHighlighted];
pressButton.tag =i+110;
pressButton.frame =CGRectMake(16*FIT_X+i*32*FIT_X, 59*FIT_X, 34*FIT_X, 48*FIT_X);
[pressButton addTarget:self action:@selector(goPressSecondKeyButtons:) forControlEvents:UIControlEventTouchUpInside];
[self.otherKeyBoardView addSubview:pressButton];
UILabel *descripSecLabel =[[UILabel alloc] init];
descripSecLabel.frame =pressButton.frame;
descripSecLabel.backgroundColor =[UIColor clearColor];
descripSecLabel.textAlignment =NSTextAlignmentCenter;
descripSecLabel.font =[UIFont systemFontOfSize:18*FIT_X];
switch (i)
{
case 0:
descripSecLabel.text =@"A";
break;
case 1:
descripSecLabel.text =@"S";
break;
case 2:
descripSecLabel.text =@"D";
break;
case 3:
descripSecLabel.text =@"F";
break;
case 4:
descripSecLabel.text =@"G";
break;
case 5:
descripSecLabel.text =@"H";
break;
case 6:
descripSecLabel.text =@"J";
break;
case 7:
descripSecLabel.text =@"K";
break;
case 8:
descripSecLabel.text =@"L";
break;
default:
break;
}
[self.otherKeyBoardView addSubview:descripSecLabel];
}
//第三排
for (int i=0; i<7; i++)
{
UIButton *pressButton =[UIButton buttonWithType:UIButtonTypeCustom];
[pressButton setBackgroundImage:[UIImage imageNamed:@"tu1 (2).png"] forState:UIControlStateNormal];
[pressButton setBackgroundImage:[UIImage imageNamed:@"tu1 2.png"] forState:UIControlStateHighlighted];
pressButton.tag =i+120;
pressButton.frame =CGRectMake(46*FIT_X+i*32*FIT_X, 113*FIT_X, 34*FIT_X, 48*FIT_X);
[pressButton addTarget:self action:@selector(goPressSecondKeyButtons:) forControlEvents:UIControlEventTouchUpInside];
[self.otherKeyBoardView addSubview:pressButton];
UILabel *descripSecLabel =[[UILabel alloc] init];
descripSecLabel.frame =pressButton.frame;
descripSecLabel.backgroundColor =[UIColor clearColor];
descripSecLabel.textAlignment =NSTextAlignmentCenter;
descripSecLabel.font =[UIFont systemFontOfSize:18*FIT_X];
switch (i)
{
case 0:
descripSecLabel.text =@"Z";
break;
case 1:
descripSecLabel.text =@"X";
break;
case 2:
descripSecLabel.text =@"C";
break;
case 3:
descripSecLabel.text =@"V";
break;
case 4:
descripSecLabel.text =@"B";
break;
case 5:
descripSecLabel.text =@"N";
break;
case 6:
descripSecLabel.text =@"M";
break;
default:
break;
}
[self.otherKeyBoardView addSubview:descripSecLabel];
}
//减
UIButton *pressButtondelete =[UIButton buttonWithType:UIButtonTypeCustom];
pressButtondelete.frame =CGRectMake(272*FIT_X, 113*FIT_X, 43*FIT_X, 49*FIT_X);
[pressButtondelete setBackgroundImage:[UIImage imageNamed:@"tu2 2.png"] forState:UIControlStateNormal];
[pressButtondelete setBackgroundImage:[UIImage imageNamed:@"tu2 (2).png"] forState:UIControlStateHighlighted];
[pressButtondelete addTarget:self action:@selector(deleteTextField) forControlEvents:UIControlEventTouchUpInside];
[self.otherKeyBoardView addSubview:pressButtondelete];
UIImageView *backGrodImage =[[UIImageView alloc]initWithFrame:CGRectMake(277*FIT_X, 123*FIT_X, 32*FIT_X, 28*FIT_X)];
backGrodImage.image =[UIImage imageNamed:@"tu2 (3).png"];
[self.otherKeyBoardView addSubview:backGrodImage];
//大写
pressButtonCapital =[UIButton buttonWithType:UIButtonTypeCustom];
pressButtonCapital.frame =CGRectMake(1, 113*FIT_X, 43*FIT_X, 49*FIT_X);
[pressButtonCapital setBackgroundImage:[UIImage imageNamed:@"tu2 2.png"] forState:UIControlStateNormal];
[pressButtonCapital setBackgroundImage:[UIImage imageNamed:@"tu2 (2).png"] forState:UIControlStateHighlighted];
[pressButtonCapital setBackgroundImage:[UIImage imageNamed:@"tu2 (2).png"] forState:UIControlStateSelected];
[pressButtonCapital addTarget:self action:@selector(pressCapitalAction:) forControlEvents:UIControlEventTouchUpInside];
[self.otherKeyBoardView addSubview:pressButtonCapital];
bacDaXieImage =[[UIImageView alloc]initWithFrame:CGRectMake(7*FIT_X, 123*FIT_X, 31*FIT_X, 27*FIT_X)];
bacDaXieImage.image =[UIImage imageNamed:@"da_.png"];
[self.otherKeyBoardView addSubview:bacDaXieImage];
//123
UIButton *pressButtonReturn =[UIButton buttonWithType:UIButtonTypeCustom];
pressButtonReturn.frame =CGRectMake(0, 167*FIT_X, 80*FIT_X, 49*FIT_X);
[pressButtonReturn setBackgroundImage:[UIImage imageNamed:@"tu3-4"] forState:UIControlStateNormal];
[pressButtonReturn setBackgroundImage:[UIImage imageNamed:@"tu3-04 (2).png"] forState:UIControlStateHighlighted];
[pressButtonReturn addTarget:self action:@selector(changeNumberKeyBoard) forControlEvents:UIControlEventTouchUpInside];
[self.otherKeyBoardView addSubview:pressButtonReturn];
UILabel *pressButtonReturnLabel =[[UILabel alloc] init];
pressButtonReturnLabel.frame =pressButtonReturn.frame;
pressButtonReturnLabel.backgroundColor =[UIColor clearColor];
pressButtonReturnLabel.textColor =[UIColor whiteColor];
pressButtonReturnLabel.textAlignment =NSTextAlignmentCenter;
pressButtonReturnLabel.font =[UIFont systemFontOfSize:18*FIT_X];
pressButtonReturnLabel.text =@"1 2 3";
[self.otherKeyBoardView addSubview:pressButtonReturnLabel];
//空格
UIButton *pressButtonZeroTwo =[UIButton buttonWithType:UIButtonTypeCustom];
pressButtonZeroTwo.frame =CGRectMake(80*FIT_X, 167*FIT_X, 160*FIT_X, 49*FIT_X);
[pressButtonZeroTwo setBackgroundImage:[UIImage imageNamed:@"tu4 (2).png"] forState:UIControlStateNormal];
[pressButtonZeroTwo setBackgroundImage:[UIImage imageNamed:@"tu4 2.png"] forState:UIControlStateHighlighted];
pressButtonZeroTwo.tag =24;
[pressButtonZeroTwo addTarget:self action:@selector(addNullAction) forControlEvents:UIControlEventTouchUpInside];
[self.otherKeyBoardView addSubview:pressButtonZeroTwo];
UILabel *pressButtonZeroTwoLabel =[[UILabel alloc] init];
pressButtonZeroTwoLabel.frame =pressButtonZeroTwo.frame;
pressButtonZeroTwoLabel.backgroundColor =[UIColor clearColor];
pressButtonZeroTwoLabel.textAlignment =NSTextAlignmentCenter;
pressButtonZeroTwoLabel.font =[UIFont systemFontOfSize:18*FIT_X];
pressButtonZeroTwoLabel.text =@"空格";
[self.otherKeyBoardView addSubview:pressButtonZeroTwoLabel];
//确定
UIButton *pressButtonSearch =[UIButton buttonWithType:UIButtonTypeCustom];
pressButtonSearch.frame =CGRectMake(240*FIT_X, 167*FIT_X, 80*FIT_X, 49*FIT_X);
[pressButtonSearch setBackgroundImage:[UIImage imageNamed:@"tu3-4"] forState:UIControlStateNormal];
[pressButtonSearch setBackgroundImage:[UIImage imageNamed:@"tu3-04 (2).png"] forState:UIControlStateHighlighted];
[pressButtonSearch addTarget:self action:@selector(searchAllTextField) forControlEvents:UIControlEventTouchUpInside];
[self.otherKeyBoardView addSubview:pressButtonSearch];
UILabel *pressButtonSearchLabel =[[UILabel alloc] init];
pressButtonSearchLabel.frame =pressButtonSearch.frame;
pressButtonSearchLabel.backgroundColor =[UIColor clearColor];
pressButtonSearchLabel.textColor =[UIColor whiteColor];
pressButtonSearchLabel.textAlignment =NSTextAlignmentCenter;
// pressButtonSearchLabel.font =[UIFont fontWithName:@"STHeitiSC-Light" size:18*FIT_X];
pressButtonSearchLabel.font = [UIFont systemFontOfSize:18*FIT_X];
pressButtonSearchLabel.text =@"确定";
[self.otherKeyBoardView addSubview:pressButtonSearchLabel];
}
self.inputView =self.otherKeyBoardView;
[self reloadInputViews];
}
-(void)goPressSecondKeyButtons:(UIButton *)btn
{
NSString *addString=@"";
switch (btn.tag)
{
case 100:
addString =@"q";
break;
case 101:
addString =@"w";
break;
case 102:
addString =@"e";
break;
case 103:
addString =@"r";
break;
case 104:
addString =@"t";
break;
case 105:
addString =@"y";
break;
case 106:
addString =@"u";
break;
case 107:
addString =@"i";
break;
case 108:
addString =@"o";
break;
case 109:
addString =@"p";
break;
case 110:
addString =@"a";
break;
case 111:
addString =@"s";
break;
case 112:
addString =@"d";
break;
case 113:
addString =@"f";
break;
case 114:
addString =@"g";
break;
case 115:
addString =@"h";
break;
case 116:
addString =@"j";
break;
case 117:
addString =@"k";
break;
case 118:
addString =@"l";
break;
case 120:
addString =@"z";
break;
case 121:
addString =@"x";
break;
case 122:
addString =@"c";
break;
case 123:
addString =@"v";
break;
case 124:
addString =@"b";
break;
case 125:
addString =@"n";
break;
case 126:
addString =@"m";
break;
default:
break;
}
if (pressButtonCapital.selected)
{
addString =[addString uppercaseString];
}
NSMutableString* mutableString = [[NSMutableString alloc] initWithFormat:@"%@%@", self.text, addString];
self.text = mutableString;
[self searchAllTextField];
}
//切换到123键盘
-(void)changeNumberKeyBoard
{
self.inputView =keyBoardView;
[self reloadInputViews];
}
//空格
-(void)addNullAction
{
NSMutableString* mutableString = [[NSMutableString alloc] initWithFormat:@"%@ ", self.text];
self.text = mutableString;
[self searchAllTextField];
}
//大小写切换
-(void)pressCapitalAction:(UIButton *)button
{
if (button.selected)
{
button.selected =NO;
bacDaXieImage.image =[UIImage imageNamed:@"da_.png"];
}
else
{
button.selected =YES;
bacDaXieImage.image =[UIImage imageNamed:@"da.png"];
}
}
@end
调用:
#import "ViewController.h"
#import "PassTextFild.h"
@interface ViewController ()<PassTextFieldViewDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
PassTextFild *searchTextField =[[PassTextFild alloc]initWithFrame:CGRectMake(20,50, 280, 28)];
searchTextField.borderStyle =UITextBorderStyleRoundedRect;
searchTextField.placeholder =@"请输入代码或拼音首字母";
searchTextField.font =[UIFont systemFontOfSize:13];
searchTextField.contentVerticalAlignment =UIControlContentVerticalAlignmentCenter;
searchTextField.autocorrectionType =UITextAutocorrectionTypeNo;
searchTextField.returnKeyType = UIReturnKeyDone;
searchTextField.keyboardType =UIKeyboardTypeDefault;
searchTextField.clearButtonMode = UITextFieldViewModeAlways;
searchTextField.text =@"";
searchTextField.delegate = self;
[self.view addSubview:searchTextField];
PassTextFild *searchTextField2 =[[PassTextFild alloc]initWithFrame:CGRectMake(20,150, 280, 28)];
searchTextField2.borderStyle =UITextBorderStyleRoundedRect;
searchTextField2.placeholder =@"请输入代码或拼音首字母";
searchTextField2.font =[UIFont systemFontOfSize:13];
searchTextField2.contentVerticalAlignment =UIControlContentVerticalAlignmentCenter;
searchTextField2.autocorrectionType =UITextAutocorrectionTypeNo;
searchTextField2.returnKeyType = UIReturnKeyDone;
searchTextField2.keyboardType =UIKeyboardTypeDefault;
searchTextField2.clearButtonMode = UITextFieldViewModeAlways;
searchTextField2.text =@"";
[self.view addSubview:searchTextField2];
[searchTextField becomeFirstResponder];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)passTextFieldSearch:(NSString *)searchString {
NSLog(@"%@",searchString);
}
@end