5.5 Màn Hình Runtime
5.5.6 Đối Tượng TextField
TextField giúp hiện thị giá trị các biến cho người dùng thấy, và thay đổi giá trị các biến. Về cơ bản các bước làm việc với TextField gần giống với Label nhưng nó có thêm một số tính năng mới.
Bước 1: : Đầu tiên cần tạo Class để đưa vào cho đối tượng các thuộc tính mong muốn mà thư viện chuẩn chưa có. Ví dụ như là TagAssign, Decription ..v..v
Trong đó đối tượng ngoài có các thuộc tính mặc định của xcode hỗ trợ thì nay có thêm thuộc tính tagAssign và decription phục vụ cho nhu cầu viết code.
Các hàm Init trong file .m phục vụ cho việc khởi tạo một đối tượng mới với các thông số khởi tạo mong muốn.
Bước 2: Trong giao diện Runtime ta cũng tạo ra 1 Label sẵn làm một tool khi click vào nó sẽ tạo ra được các đối tượng TextField. Cách làm cũng tương tư như trên.
Page 63
Hình 5-24 Giao diện Pop Up TextField
Trong hàm ngắt khi người dùng tap vào tool Label ta chú ý các hàm tạo ra và lưu TextField vào một mảng:
textFieldCreated=[[TextField alloc] initWithFrame:CGRectMake(205, 535, 160.0, 40.0)];
textFieldCreated.tag= textFieldTagID; textFieldTagID++;
//[self.view addSubview:myLabel]; [self.view addSubview:textFieldCreated];
Page 64
Các hàm tạo ra Gesture giúp ta co thể kéo thả, zoom đối tượng TextField.
Bước 3: Thiết kế một giao diện cho người dùng có thể thay đổi được thông số TextField và cách lập trình cho TextField.
Giao diện Design cho TextFiled.
panTextFieldGesture= [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(dragGesture:)]; [panTextFieldGestureArray addObject:panTextFieldGesture];
tapTextFieldGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapTextField:)];
[tapTextFieldGestureArray addObject:tapTextFieldGesture];
pinchTextFieldGesture =[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchMe:)]; [pinchTextFieldGestureArray addObject:pinchTextFieldGesture]; [textFieldCreated addGestureRecognizer:panTextFieldGesture]; [textFieldCreated addGestureRecognizer:tapTextFieldGesture]; [textFieldCreated addGestureRecognizer:pinchTextFieldGesture]; [textFieldCreated setUserInteractionEnabled:YES]; textFieldCreated.delegate=self;
Page 65
Hình 5-25 Giao diện chỉnh sửa TextField
Đây là hàm xử lý dữ liệu khi người dùng thay đổi thông số TextField.
- (void) initViewWithPropertiOfTextField: (TextField *) textField{ textFieldDesign = textField; txt_textColor.backgroundColor = textField.textColor; txt_backRoundColor.backgroundColor = textField.backgroundColor;
txt_Tag.text = [NSString stringWithFormat:@"%@",textField.tagAssign]; if (textField.textAlignment == UITextAlignmentLeft) { segAlignment.selectedSegmentIndex = 0; }
else if (textField.textAlignment == UITextAlignmentCenter) {
segAlignment.selectedSegmentIndex = 1; }
else if (textField.textAlignment == UITextAlignmentRight) {
segAlignment.selectedSegmentIndex = 2; }
Page 66
Đây là hàm giúp hiển thị dữ liệu lên TextField: