2012-06-19 42 views
8

Tôi đang cố thay đổi kiểu chữ UIKeyboardType thành bàn phím chữ cái khi người dùng gõ dấu cách, phản ánh tác dụng của việc gõ dấu nháy đơn. Tuy nhiên, mã của tôi sẽ không thay đổi diện mạo bàn phím cho đến khi người dùng loại bỏ bàn phím và sau đó đưa nó trở lại.Thay đổi kiểu UIKeyboardType dựa trên kiểu nhập văn bản

Chỉnh sửa: Để làm rõ, loại bàn phím bắt đầu dưới dạng UIKeyboardTypeNumbersAndCâu hỏi và tôi muốn thay đổi thành ASCIICapable, vì đầu vào người dùng thông thường có dạng "# cups flour". Tôi nhận ra rằng bàn phím ASCIICapable có chức năng này được tích hợp sẵn, do đó, trình bày bàn phím có khả năng ASCII nhưng hiển thị các số/dấu chấm câu đầu tiên sẽ hoạt động.

Dưới đây là mã của tôi:

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 

    if ([string isEqualToString:@" "]) { 
     textField.keyboardType = UIKeyboardTypeASCIICapable; 
    } 

return YES; 
} 

Trả lời

10

bỏ qua bàn phím và sau đó trở thành responder đầu tiên một lần nữa. Trong mã của tôi, tôi đã tạo một IBOutlet cho textfield * tf. Nó đã làm việc.

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 

    if ([string isEqualToString:@" "]) { 
     self.tf.keyboardType = UIKeyboardTypeNumberPad; 
     [textField resignFirstResponder]; 
     [self.tf becomeFirstResponder]; 
    } 

    return YES; 
} 
+0

Làm việc hoàn hảo, tôi nên nghĩ về điều này. Cảm ơn Bruno. – MaxGabriel

Các vấn đề liên quan