2011-12-26 30 views
5

Trong ứng dụng của tôi, tôi phải điền UITextField từ giá trị tồn tại trong UIPickerView không thông qua bàn phím.iPhone: Có thể ẩn bàn phím khi đang nhấn UITextField không?

Tôi có 2 UITextFields. Trong giá trị textfield 1 là lấy từ bàn phím và về giá trị textfield 2 được lấy từ UIPickerView

vân vân khai thác textfield 2 Tôi muốn ẩn bàn phím và hiển thị UIPickerView

đây tôi thêm những gì tôi làm để tham khảo của bạn tốt hơn

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
     [pickerToolBar setHidden:NO];//shows toolbar 
     [pickerTime setHidden:NO];//shows UIPickerView 
     [textField resignFirstResponder]; 
} 

nhưng sau khi viết mã trên, bàn phím sẽ không biến mất.

nếu bạn có bất kỳ ý tưởng sau đó plz giúp tôi ...

Trả lời

0

Nếu bạn đang điền UITextField dựa trên UIPicker, tại sao không chỉ đơn giản là vô hiệu hóa tương tác người dùng với UITextField? Bạn vẫn có thể đặt dữ liệu ở đó và người dùng sẽ không thể thay đổi dữ liệu đó. Tuy nhiên, để buộc bàn phím ở chế độ ẩn, bạn có thể làm cho UITextField phát hiện khi nó được chạm/thay đổi/etc và sau đó để nó từ chối trả lời đầu tiên.

+1

UIPickerView của tôi sẽ mở khi nhấn vào UITextField. – iPhone

+1

Sau đó, dưới tùy chọn cho willBeginEditing, có nó mang lên UIPickerView và từ chức trả lời đầu tiên (thoát khỏi bàn phím). –

+2

"willBegingEditing" là phương pháp này cho UITextfield? – iPhone

1

Không thể để ẩn bàn phím trong khi tập trung ở bên trong UITextField ...

Bạn phải đặt UIPicker ở mức nơi nó không được ẩn đằng sau bàn phím, để nó không trở thành một trở ngại cho bạn trong khi chọn giá trị ..

Và nếu bạn chọn giá trị từ UIPicker thì tại sao bạn cần gõ vào UITextField, vì vậy nếu bạn không khai thác trong UiTextField, bàn phím sẽ không được hiển thị ...

Chúc mừng !!!

1

thử với thuộc tính có thể chỉnh sửa trường văn bản dưới dạng FALSE hoặc tương tác người dùng bật thuộc tính sai và thêm một nút tùy chỉnh có cùng kích thước của trường văn bản của bạn với sự kiện nút mở chế độ xem bộ chọn.

+0

tôi nghĩ rằng đây là giải pháp tốt nhất – Aditya

2

Hãy thử UITextfield phương thức ủy quyền. đặt mã sau vào phương thức texfield didBeginEditing.

[texfield resignfirstresonder]; 

Sau đó, trường văn bản sẽ chặn chỉnh sửa và bàn phím sẽ không xuất hiện. Đảm bảo bạn đã đính kèm ủy nhiệm trường văn bản vào chủ sở hữu tệp.

+0

Ngoài ra bạn cũng có thể gọi phương thức hiển thị UIpickerview của bạn sau khi bạn từ chức trả lời của textfield. Mã này sẽ xem xét somhow như thế này: - (void) textFieldDidBeginEditing: (UITextField *) TextField { if (textfield == URTEXTFIELD) { [textfield resignFirstResponder]; [pickerview trở thànhFirstResponder]; } } – iCreative

1
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)]; 
[self.view addGestureRecognizer:gestureRecognizer]; 
gestureRecognizer.cancelsTouchesInView = NO; 


- (void) hideKeyboard 
{ 
    [textfieldname1 resignFirstResponder]; 
    [textfieldname2 resignFirstResponder]; 
} 
+0

Bạn có thể giải thích thêm chút nữa không? – iPhone

+1

khi u nhập một số văn bản trên trường văn bản, nó tạo ra hàm UITapGestureRecongnizer. khi u sẽ rời khỏi trường văn bản và nhấp vào chế độ xem ra khỏi trường văn bản, chức năng hideKeyboard được kích hoạt. thì bàn phím bị ẩn. – akk

1

Các câu trả lời này có thể hiệu quả nhưng không ai trả lời tốt nhất; Bạn có thể thay thế chế độ xem bàn phím bằng uipickerview khi trường văn bản được khai thác :)

UITextField *field = [[UITextField alloc] init]; 
field.inputView = [[UIPickerView alloc] init]; 
Các vấn đề liên quan