-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNumberKeyboard.m
203 lines (154 loc) · 9.68 KB
/
NumberKeyboard.m
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
//
// NumberKeyboard.m
// CustKeypad
//
// Created by Muthupalaniappan on 1/12/16.
// Copyright © 2016 Muthupalaniappan. All rights reserved.
//
#import "NumberKeyboard.h"
#import "KAlertController.h"
@implementation NumberKeyboard
@synthesize textField = _textField;
@synthesize maxlength, maxDecimalPoint;
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
- (id)init {
if (self) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"NumberKeyboard" owner:self options:nil];
self = [nib objectAtIndex:0];
}
[keyOne setBackgroundImage:[[keyOne backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:8 topCapHeight:50] forState:UIControlStateNormal];
[keyTwo setBackgroundImage:[[keyTwo backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:8 topCapHeight:50] forState:UIControlStateNormal];
[keyThree setBackgroundImage:[[keyThree backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:8 topCapHeight:50] forState:UIControlStateNormal];
[keyFour setBackgroundImage:[[keyFour backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:8 topCapHeight:50] forState:UIControlStateNormal];
[keyFive setBackgroundImage:[[keyFive backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:8 topCapHeight:50] forState:UIControlStateNormal];
[keySix setBackgroundImage:[[keySix backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:8 topCapHeight:50] forState:UIControlStateNormal];
[keySeven setBackgroundImage:[[keySeven backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:8 topCapHeight:50] forState:UIControlStateNormal];
[keyEight setBackgroundImage:[[keyEight backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:8 topCapHeight:50] forState:UIControlStateNormal];
[keyNine setBackgroundImage:[[keyNine backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:8 topCapHeight:50] forState:UIControlStateNormal];
[keyZero setBackgroundImage:[[keyZero backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:8 topCapHeight:50] forState:UIControlStateNormal];
[keyPeriod setBackgroundImage:[[keyPeriod backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:8 topCapHeight:50] forState:UIControlStateNormal];
[keyBack setBackgroundImage:[[keyBack backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:8 topCapHeight:50] forState:UIControlStateNormal];
[keyBack setBackgroundImage:[[keyReturn backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:8 topCapHeight:50] forState:UIControlStateNormal];
return self;
}
- (IBAction)keyPressed:(UIButton *)sender {
if ([self.textField.text isEqualToString:@"0"] || [self.textField.text isEqualToString:@"0.00"]) {
self.textField.text = @"";
}
self.textField.text = [self.textField.text stringByAppendingString:sender.titleLabel.text];
if (![[self.textField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length] ) {
[self.textField setText:@""];
}
else if(self.textField.text.length>=maxlength && (maxlength != -1)){
NSArray *countArr=[self.textField.text componentsSeparatedByString:@"."];
if ([countArr count]>1) {
if ([[countArr objectAtIndex:1] length]>maxDecimalPoint) {
self.textField.text = [ self.textField.text substringToIndex:[ self.textField.text length] - 1];
[KAlertController presentOkayAlertWithTitle:EMPTYSTRING message:[LocalizationHandler getLocalisedStringFromString:keyboard_allowupto_two_decimal_points] ];
if ([[CommonHelper getActivityCode]isEqualToString:MENU_SOS] && [SOSHelper isBlockEnable]) {
self.textField.text=@"0";
}
}
}else if([countArr count]==1){
if ([[countArr objectAtIndex:0] length]>maxlength ) {
self.textField.text = [ self.textField.text substringToIndex:[ self.textField.text length] - 1];
[KAlertController presentOkayAlertWithTitle:EMPTYSTRING message:[LocalizationHandler getLocalisedStringFromString:Exceeds_the_limit] ];
if ([[CommonHelper getActivityCode]isEqualToString:MENU_SOS] && [SOSHelper isBlockEnable]) {
self.textField.text=@"0";
}
}
}
}
// else if(self.textField.text.length>maxlength && (maxlength != -1))
// {
// self.textField.text=@"";
//
// [KAlertController presentOkayAlertWithTitle:EMPTYSTRING message:[LocalizationHandler getLocalisedStringFromString:Exceeds_the_limit] ];
//
//
// if ([[CommonHelper getActivityCode]isEqualToString:MENU_SOS] && [SOSHelper isBlockEnable]) {
// self.textField.text=@"0";
// }
// }
if([self.delegate respondsToSelector:@selector(textfieldStringChange:forTextfield:)])
[self.delegate textfieldStringChange:self.textField.text forTextfield:self.textField];
}
- (IBAction)periodToggled:(id)sender
{
if(!self.textField.text || [self.textField.text isEqualToString:@""])
self.textField.text = @"0";
if([self.textField.text isEqualToString:@"-"])
self.textField.text = @"-0";
if(![self.textField.text isEqualToString:@""] && ![[self.textField.text substringFromIndex:[self.textField.text length]-1] isEqualToString:@"."] && ![self.textField.text containsString:@"."])
{
NSString* txtFieldValue = [NSString stringWithFormat:@"%@.", self.textField.text];
[self.textField setText:txtFieldValue];
}
// self.textField.text = [self.textField.text stringByReplacingOccurrencesOfString:@"." withString:@""];
// self.textField.text = [self.textField.text stringByAppendingString:@"."];
//
// }
if([self.delegate respondsToSelector:@selector(textfieldStringChange:forTextfield:)])
[self.delegate textfieldStringChange:self.textField.text forTextfield:self.textField];
}
- (IBAction)backspacePressed:(id)sender
{
if(self.textField.text.length <= 0)
{
self.textField.text = @"0";
return;
}
if([self.textField.text floatValue] == 0)
{
self.textField.text = @"0";
return;
}
self.textField.text = [self.textField.text substringToIndex:self.textField.text.length-1];
if([self.textField.text length] <= 0)
{
self.textField.text = @"0";
}
if([self.delegate respondsToSelector:@selector(textfieldStringChange:forTextfield:)])
[self.delegate textfieldStringChange:self.textField.text forTextfield:self.textField];
}
- (IBAction)returnPressed:(UIButton*)sender
{
if ([self.delegate respondsToSelector:@selector(keypadDone)]) {
[self.delegate keypadDone];
}
[self.textField resignFirstResponder];
}
- (IBAction)nextPressed:(UIButton *)sender {
[self.textField.delegate textFieldShouldReturn:self.textField];
}
-(void)presentNumberKeyboard:(UIView *)parentView{
[parentView addSubview:self];
self.translatesAutoresizingMaskIntoConstraints = NO;
NSLayoutConstraint *keyboardYconstraint = [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual toItem:parentView attribute:
NSLayoutAttributeCenterY multiplier:1.0f constant:0.0f];
NSLayoutConstraint *keyboardTrailingConstraint = [NSLayoutConstraint constraintWithItem:parentView attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeTrailing multiplier:1.0f constant:0.0f];
NSLayoutConstraint *keyboardWidthConstraint =[NSLayoutConstraint constraintWithItem:self
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:250];
NSLayoutConstraint *keyboardHeightConstraint =[NSLayoutConstraint constraintWithItem:self
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:290];
[self addConstraints:@[keyboardWidthConstraint,keyboardHeightConstraint]];
[parentView addConstraints:@[keyboardYconstraint,keyboardTrailingConstraint]];
}
@end