UITextField+总结(zhuan)

1.UITextField的初始化和设置


1

textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)];


2

[textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型


3

textField.placeholder = @"password"; //默认显示的字


4

textField.secureTextEntry = YES; //密码


5

textField.autocorrectionType = UITextAutocorrectionTypeNo;


6

textField.autocapitalizationType = UITextAutocapitalizationTypeNone;


7

textField.returnKeyType = UIReturnKeyDone;


8

textField.clearButtonMode = UITextFieldViewModeWhileEditing; //编辑时会出现个修改X


9

textField.delegate = self;


2.要实现的Delegate方法,关闭键盘


view sourceprint?


1

- (BOOL)textFieldShouldReturn:(UITextField *)textField


2

{


3

[self.textField resignFirstResponder];


4

return YES;


5

}


最右侧加图片是以下代码,
UIImageView *imgv=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]];
text.rightView=imgv;
text.rightViewMode = UITextFieldViewModeAlways;


如果是在最左侧加图片就换成:
text.leftView=imgv;
text.leftViewMode = UITextFieldViewModeAlways;
UITextField 继承自 UIControl,此类中有一个属性contentVerticalAlignment
所以想让UITextField里面的text垂直居中可以这样写:
text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;


查看函数的方法:

按住command键双击进入函数声明

按住alt键双击进入doc文档

///


文本框常用方法:

如何用程序删除文本框中选中的文本

[textView delete: nil];

///


如何限制文本框只能输入数字:

建立NSNumberFormatter的子类,增加这个方法,将formatter链接至文本框。



- (BOOL) isPartialStringValid: (NSString **) partialStringPtr

proposedSelectedRange: (NSRangePointer) proposedSelRangePtr

originalString: (NSString *) origString

originalSelectedRange: (NSRange) origSelRange

errorDescription: (NSString **) error

{

NSCharacterSet *nonDigits;

NSRange newStuff;

NSString *newStuffString;



nonDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];

newStuff = NSMakeRange(origSelRange.location,

proposedSelRangePtr->location

- origSelRange.location);

newStuffString = [*partialStringPtr substringWithRange: newStuff];



if ([newStuffString rangeOfCharacterFromSet: nonDigits

options: NSLiteralSearch].location != NSNotFound) {

*error = @"不是数字";

return (NO);

} else {

*error = nil;

return (YES);

}



}

///


从文本框获取十六进制数据的代码

char singleNumberString[3] = {'\0','\0','\0'};

uint32_t singleNumber = 0;

uint32_t i = 0;

NSMutableData *data = [NSMutableData data];

//从文本框获取到得数据


const char *buf = [[_hexToSendTextField text] UTF8String];

//转换为十六进制


for(i = 0; i < strlen(buf); i+=2)

{

if(((i+1) < len && isxdigit(buf) && (isxdigit(buf[i+1])))

{

singleNumberString[0] = buf;

singleNumberString[1] = buf[i+1];

sscanf(singleNumberString, "%x", &singleNumber);

[data appendBytes:(void*)(&tmp) length:1];

}

else

{

break;

}

}

//输出


NSLog(@"%@", data);

/


点击 UITextView 输入文字,光标都从最初点开始


- (void)textViewDidChangeSelection:(UITextView *)textView

{

NSRange range;

range.location = 0;

range.length = 0;

textView.selectedRange = range;

}

///


软键盘

在登录页面要实现用户名和密码,密码要是点点格式,引入当前页面光标要停留在用户名选项,软键盘要弹出界面。如下图:

弹出键盘:

[username becomeFirstResponder];

取消键盘:

[username resignFirstResponder];

密码保护:

password.secureTextEntry=YES;


//


1.UITextField的初始化和设置

textField = [[UITextField alloc] initWithFrame:CGRectMake(120.0f, 80.0f, 150.0f, 30.0f)];

[textField setBorderStyle:UITextBorderStyleRoundedRect]; //外框类型


textField.placeholder = @"password"; //默认显示的字


textField.secureTextEntry = YES; //密码


textField.autocorrectionType = UITextAutocorrectionTypeNo;

textField.autocapitalizationType = UITextAutocapitalizationTypeNone;

textField.returnKeyType = UIReturnKeyDone;

textField.clearButtonMode = UITextFieldViewModeWhileEditing; //编辑时会出现个修改X


textField.delegate = self;

2.要实现的Delegate方法,关闭键盘

- (BOOL)textFieldShouldReturn:(UITextField *)textField

{

[self.textField resignFirstResponder];

return YES;

}

3. 可以在UITextField使用下面方法,按return键返回

-(IBAction) textFieldDone:(id) sender

{

[textFieldName resignFirstResponder];

}

链接TextField控件的"Did end on exit"




限制输入文本的长度

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

{

if (range.location >= MAX_LENGTH)

return NO; // return NO to not change text


return YES;

}


if (textField.text.length >= 10 && range.length == 0)

return NO;

return YES;


- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

{

if ([textField.text length] > MAXLENGTH)

{

textField.text = [textField.text substringToIndex:MAXLENGTH-1];

return NO;

}

return YES;

}

//


使用UITextFieldDelegate来隐藏键盘

在iPhone界面上,时常会需要当用户输入完内容后,隐藏键盘。 当然有很多方法,今天只介绍使用UITextFieldDelegate这个协议实现隐藏键盘。

其实很简单, 需要三步:

1. 在你的控制器类中,加入UITextFieldDelegate这个协议

如:@interface AddItemViewController : UIViewController <UITextFieldDelegate>

2. 在使用了UITextFieldDelegate协议的控制器类的实现中,加入- (BOOL)textFieldShouldReturn:方法。

- (BOOL)textFieldShouldReturn:(UITextField *)textField {



[textField resignFirstResponder];

return YES;

}

//设置焦点:


[UITextField becomeFirstResponder];

3. 将xib文件中的TextField控件的delegate变量指向到之前使用UITextFieldDelegate协议的那个控制器类,将 TextField的delegate IBOutlet变量右键链接到前面的控制器类的实例上。或者使用代码方式,指定相关TextField的delegate变量。

- (void)viewDidLoad

{

[super viewDidLoad];

itemNameField.delegate = self;

priceField.delegate = self;

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值