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

    }
     
  • 相关阅读:
    【python】超有用的集合类collections,不来了解一下?
    【pytest】teardown里的yield和addfinalizer
    听过N次还是不会之:浏览器输入url后到底经历了什么
    web-UI自动化必会技能—xpath轴,了解一下?
    想在java接口自动化里用上Python的requests?这样做就可以了
    web自动化多次打开浏览器嫌烦?打开一次浏览器,pytest有个招
    【web系统UI自动化】关于UI自动化的总结
    【接口自动化】selenium库也有大用场(获取cookie)
    【python开发】迈出第一步,这可能是我唯一一次的Python开发了
    angular9的学习(八)组件的内置api
  • 原文地址:https://www.cnblogs.com/mawenqiangios/p/5884478.html
Copyright © 2020-2023  润新知