关于 UITextField 的总结

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 "
最右侧加图片是以下代码,
    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
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值