文档章节

iOS UITextField相关

用户ens8lz4vu0
 用户ens8lz4vu0
发布于 2016/01/20 23:23
字数 259
阅读 27
收藏 0

 1. 隐藏键盘

//触摸self.view隐藏
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [self.view endEditing:YES];
}

//滚动UITableView隐藏
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    [self.view endEditing:YES];
}

2. new个field

#pragma mark - Getter

- (UITextField *)fieldAccount {
    if (!_fieldAccount) {
        _fieldAccount = [UITextField newAutoLayoutView];
        _fieldAccount.delegate = self;
        
        //提示文字颜色
        NSDictionary *attributes = @{NSFontAttributeName:[UIFont kMyFontCNSize:12],
                                     NSForegroundColorAttributeName:[UIColor redColor]}; 
        NSAttributedString *attrStr = [[NSAttributedString alloc] initWithString:@"还想关注" attributes:attributes];
        _fieldAccount.attributedPlaceholder = attrStr;
        
        _fieldAccount.clearButtonMode = UITextFieldViewModeWhileEditing;
        _fieldAccount.keyboardType = UIKeyboardTypePhonePad;
        _fieldAccount.returnKeyType = UIReturnKeyNext;
        
        _fieldAccount.font = kFontCNSize(12);
        _fieldAccount.tintColor = kColorRed;
        
        _fieldAccount.textColor = [UIColor whiteColor];
        _fieldAccount.textAlignment = NSTextAlignmentCenter;

        [self.view addSubview:_fieldAccount];
    }
    
    return _fieldAccount;
}

3. textField代理 限制输入长度

#pragma mark - UITextFieldDelegate

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSInteger len = 30;

    //手机号11位数字
    if (self.fieldAccount == textField) {
        len = 11;
    } else if (self.fieldPassword == textField) {
        len = 16;
    }

    NSString *toBeString = [textField.text stringByReplacingCharactersInRange:range withString:string];
    if (toBeString.length > len && range.length!=1) {
        textField.text = [toBeString substringToIndex:len];

        return NO;
    }

    if (self.fieldAccount == textField) {
        return [self validateNumber:string];
    }

    return YES;
}

- (BOOL)validateNumber:(NSString*)number {
    NSCharacterSet *tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
    int i = 0;
    while (i < number.length) {
        NSString *string = [number substringWithRange:NSMakeRange(i, 1)];
        NSRange range = [string rangeOfCharacterFromSet:tmpSet];
        if (range.length == 0) {
            return NO;
        }

        i++;
    }

    return YES;
}

//或者
- (BOOL)validateNumber:(NSString*)number field:(UITextField *)field{
    NSCharacterSet *tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789+*#"];
    int i = 0;
    while (i < number.length) {
        NSString *string = [number substringWithRange:NSMakeRange(i, 1)];
        NSRange range = [string rangeOfCharacterFromSet:tmpSet];
        if (range.length == 0) {
            field.text = (number.length == 1)?@"":[number substringToIndex:i];
            return NO;
        }
        i++;
    }
    
    return YES;
}

4. 

5. 

© 著作权归作者所有

上一篇: iOS UISearchBar相关
下一篇: iOS UITableView相关
用户ens8lz4vu0
粉丝 0
博文 9
码字总数 3533
作品 0
深圳
私信 提问
iOS开发需要了解的基础内容链接整理

https://llvm.org/svn/llvm-project/cfe/trunk/test/SemaObjC/builtinobjcnslog.m http://llvm.org/klaus/clang/commit/5faf5d31fa634e1fdb576c4d9708cd4efa5ea310/ 对Objective-C的NSObjec......

智能小松鼠
2015/01/14
0
2
UITextField 文本字段控件-IOS开发

进入本文之前建议你认真读一读我的另一篇博文:《UIControl IOS控件编程—IOS开发》http://blog.csdn.net/iukey/article/details/7300412 这样会起到事半功倍效果。 再就是用到UITextField,...

junwong
2012/03/05
1K
1
[转]设置 UILabel 和 UITextField 的 Padding 或 Insets

iOS 的控件,只看到 UIButton 可以设置 Padding/Insets,即按钮上文字或图片与按钮边界的间隙,对与 CSS 来说叫做 Padding,在 iOS 中叫做 Insets,UIButton 设置 Insets 相应的属性如下: ...

MrMign
2012/03/29
0
0
【非凡程序员】 OC第十六节课 初识IOS开发一(字符串转换与计算器)

IOS开发其实和OS X差不多,只不过输出的方法不一样,OS X是setstringvale,而IOS是settext (或者使用点语法.text) ViewController.h文件 #import <UIKit/UIKit.h> @interface ViewControl...

七月流火zsp
2015/06/11
0
0
Xamarin iOS教程之键盘的使用和设置

Xamarin iOS教程之键盘的使用和设置 Xamarin iOS使用键盘 在文本框和文本视图中可以看到,当用户在触摸这些视图后,就会弹出键盘。本节将主要讲解键盘的输入类型定义、显示键盘时改变输入视图...

大学霸
2015/06/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Angular 英雄编辑器

应用程序现在有了基本的标题。 接下来你要创建一个新的组件来显示英雄信息并且把这个组件放到应用程序的外壳里去。 创建英雄组件 使用 Angular CLI 创建一个名为 heroes 的新组件。 ng gener...

honeymoose
今天
4
0
Kernel DMA

为什么会有DMA(直接内存访问)?我们知道通常情况下,内存数据跟外设之间的通信是通过cpu来传递的。cpu运行io指令将数据从内存拷贝到外设的io端口,或者从外设的io端口拷贝到内存。由于外设...

yepanl
今天
6
0
hive

一、hive的定义: Hive是一个SQL解析引擎,将SQL语句转译成MR Job,然后再在Hadoop平台上运行,达到快速开发的目的 Hive中的表是纯逻辑表,就只是表的定义,即表的元数据。本质就是Hadoop的目...

霉男纸
今天
3
0
二、Spring Cloud—Eureka(Greenwich.SR1)

注:本系列文章所用工具及版本如下:开发工具(IDEA 2018.3.5),Spring Boot(2.1.3.RELEASE),Spring Cloud(Greenwich.SR1),Maven(3.6.0),JDK(1.8) Eureka: Eureka是Netflix开发...

倪伟伟
昨天
13
0
eclipse常用插件

amaterasUML https://takezoe.github.io/amateras-update-site/ https://github.com/takezoe/amateras-modeler modelGoon https://www.cnblogs.com/aademeng/articles/6890266.html......

大头鬼_yc
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部