zoukankan      html  css  js  c++  java
  • 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;

    }



  • 相关阅读:
    ....
    CodeForces 375A(同余)
    POJ 2377 Bad Cowtractors (最小生成树)
    POJ 1258 AgriNet (最小生成树)
    HDU 1016 Prime Ring Problem(全排列)
    HDU 4460 Friend Chains(bfs)
    POJ 2236 Wireless Network(并查集)
    POJ 2100 Graveyard Design(尺取)
    POJ 2110 Mountain Walking(二分/bfs)
    CodeForces 1059B Forgery(模拟)
  • 原文地址:https://www.cnblogs.com/wengzilin/p/2393985.html
Copyright © 2011-2022 走看看