zoukankan      html  css  js  c++  java
  • UITextField总结--博主总结的真好

    忍不住copy过来http://www.cnblogs.com/wengzilin/archive/2012/03/13/2393985.html
    还有些不错的博客推荐给大家http://blog.csdn.net/leeyehong_self/article/details/7904945
    http://blog.csdn.net/tskyfree/article/details/8121915
    http://blog.csdn.net/justinjing0612/article/details/7058632

    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] = {'','',''};
    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

    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;
    
    }
    
    追寻最真
  • 相关阅读:
    9 与python2交互
    8 内置函数(未完成)
    7 事务
    [转]jquery.vTicker(垂直滚动)
    2015年工作总结(2016-02-02)
    jQuery plugin : jqTransform
    JQuery知识总结
    JQuery事件处理的注意事项
    JQuery基本选择器
    [二]JQueryMobile常用的组件介绍
  • 原文地址:https://www.cnblogs.com/zhao-jie-li/p/5850689.html
Copyright © 2011-2022 走看看