限制输入长度的问题,在这里完美的解决了!
//先创建一个textField 和 一个button。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#import "ViewController.h"
@interface
ViewController ()<UITextFieldDelegate> {
UITextField *currentTextFeild;
UIButton *touchButton;
}
@end
@implementation
ViewController
- (
void
)viewDidLoad {
[
super
viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UITextField *textFields = [[UITextField alloc] initWithFrame:CGRectMake(15, 50,
self
.view.bounds.size.width-15*2, 40)];
textFields.backgroundColor = [UIColor brownColor];
textFields.layer.cornerRadius = 5;
textFields.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 40)];
textFields.leftViewMode = UITextFieldViewModeAlways;
//这两行是为了不让Text太贴textField的左边
textFields.placeholder = @
"请输入手机号"
;
textFields.delegate =
self
;
[
self
.view addSubview:textFields];
currentTextFeild = textFields;
UIButton *enableButton = [UIButton buttonWithType:UIButtonTypeCustom];
enableButton.frame = CGRectMake(15, 100,
self
.view.bounds.size.width-15*2, 40);
enableButton.layer.cornerRadius = 5;
enableButton.backgroundColor = [UIColor grayColor];
[enableButton setTitle:@
"没内容不可点击"
forState:UIControlStateNormal];
[enableButton setTitle:@
"可以按了"
forState:UIControlStateSelected];
[enableButton setTitle:@
"按下去了"
forState:UIControlStateHighlighted];
enableButton.enabled =
NO
;
[enableButton addTarget:
self
action:
@selector
(btnClick) forControlEvents:UIControlEventTouchUpInside];
[
self
.view addSubview:enableButton];
touchButton = enableButton;
}
- (
void
)btnClick {
}
|
//设置textField代理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
#pragma mark - UITextFieldDelegate
- (
BOOL
)textFieldShouldBeginEditing:(UITextField *)textField {
return
YES
;
}
- (
void
)textFieldDidEndEditing:(UITextField *)textField {
}
- (
BOOL
)textField:(UITextField *)textField shouldChangeCharactersInRange:(
NSRange
)range replacementString:(
NSString
*)string {
//用来判断是否可以继续输入, - range.length是为了判断是否可以删除
NSInteger
currentLength = textField.text.length - range.length + string.length;
if
(currentLength > 11) {
return
NO
;
}
//判断按钮是否可以enable = YES
if
(currentTextFeild.text && currentTextFeild.text.length > 0 && currentLength > 0) {
touchButton.enabled =
YES
;
touchButton.selected =
YES
;
}
else
{
touchButton.enabled =
NO
;
touchButton.selected =
NO
;
}
if
(currentLength <= 0) {
touchButton.enabled =
NO
;
touchButton.selected =
NO
;
}
return
YES
;
}
- (
BOOL
)textFieldShouldClear:(UITextField *)textField {
if
(currentTextFeild.tag == 11 || currentTextFeild.tag == 12) {
//手机号
touchButton.enabled =
NO
;
touchButton.selected =
NO
;;
}
return
YES
;
}
- (
BOOL
)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return
YES
;
}
|
只要有基础的,差不多都能看明白。。。