Tôi đã thiết lập UITableView với một số UITableViewCell tùy chỉnh có một số UITextField và UISwitch's (dựa trên Settings.app). Câu hỏi của tôi là, khi người dùng nhấp vào nút Lưu trong thanh điều hướng, cách đánh bại để truy cập vào các trường văn bản này và chuyển điều khiển để lưu giá trị của chúng là gì?Xem bảng iPhone: Cách truy cập trường văn bản tùy chỉnh TableViewCell
Trả lời
Đề xuất của tôi là không sử dụng tùy chỉnh UITableViewCell
s. Tôi đã từng làm theo cách của bạn, nhưng có một cách tốt hơn nhiều. Sử dụng thuộc tính accessoryView
của UITableViewCell
, mà bạn có thể chỉ định một chế độ xem tùy ý, chẳng hạn như UITextField
hoặc UISwitch
. Nó hiển thị chính xác như trong ứng dụng Cài đặt.
Sau đó, khi bạn cần phải truy cập vào nó, chỉ cần sử dụng
NSString *text = ((UITextField *)cell.accessoryView).text;
Tuy nhiên, bạn phải cẩn thận về việc thiết lập các tế bào và truy cập vào các giá trị của họ. Nếu bất kỳ ô nào bị tắt màn hình, nó sẽ bị xóa và bạn sẽ không thể truy cập vào trường văn bản. Những gì bạn muốn làm khi thiết lập di động của bạn là:
cell.accessoryView = nil; //Make sure any old accessory view isn't there.
if (/*cell needs text field*/) {
UITextField *textField = [[[UITextField alloc] initWithFrame:frame] autorelease];
textField.text = savedValue;
cell.accessoryView = textField;
[textField addTarget:self action:@selector(textChanged:) forControlEvents:UIControlEventValueChanged];
}
...
- (void) textChanged:(UITextField *)source {
self.savedValue = source.text;
}
Nếu bạn không làm theo đề nghị của Ed, bạn có lẽ tốt nhất giữ lại xem văn bản của bạn vào ô tùy chỉnh và thêm một tài sản để truy cập vào xem.
Bạn cũng có thể để các ô tùy chỉnh giữ tham chiếu đến bộ điều khiển chế độ xem cấp cao hơn và gửi thông báo khi người dùng cập nhật giá trị trong đó. Về cơ bản, sao chép mẫu đại biểu được sử dụng bởi nhiều đối tượng thư viện trong UIKit.
- 1. Cách tiếp cận tốt nhất để chỉnh sửa trường văn bản trong ô xem bảng
- 2. Đặt trường văn bản tùy chỉnh trong SelectList
- 3. iPhone: di chuyển ô xem bảng để hiển thị trên thanh công cụ tùy chỉnh trên bàn phím tùy chỉnh?
- 4. Văn bản khóa trả lại của iPhone tùy chỉnh
- 5. Drupal 7: Truy cập trường nút tùy chỉnh trong page.tpl.php
- 6. Tùy chỉnh đề xuất ở chế độ xem văn bản trong iPhone
- 7. Thêm hành động tùy chỉnh: @selector vào UISwitch trên TableViewCell
- 8. Bảng phân cảnh iPhone Chỉnh sửa chế độ xem bảng
- 9. Bàn phím iPhone tùy chỉnh
- 10. Cách cập nhật trường tùy chỉnh TFS theo lập trình
- 11. Truy cập danh sách Hộp văn bản
- 12. Cách đặt màu tùy chỉnh trong văn bản?
- 13. Truy cập các thuộc tính của bộ điều khiển chế độ xem (tùy chỉnh)
- 14. Xác thực tùy chỉnh Django ModelForm: Cách truy cập các giá trị trường đã gửi
- 15. UILabel trong UICollectionViewCell tùy chỉnh luôn rỗng, không thể cập nhật văn bản
- 16. Làm cách nào để truy cập layout_height từ trong chế độ xem tùy chỉnh của tôi?
- 17. iPhone - textField trong một tableViewCell - Di chuyển màn hình tắt xóa giá trị
- 18. ScalaTest - văn bản tùy chỉnh quẹt
- 19. chèn văn bản tùy chỉnh vào ggplot2
- 20. AsyncTask để cập nhật tiện ích - cách truy cập vào các bản xem trước văn bản trong onPostExecute()?
- 21. Truy cập các trường của thành phần từ một người triển khai tùy chỉnh
- 22. Drupal 7 - xem tùy chỉnh với bảng tùy chỉnh, không có dữ liệu nào hiển thị
- 23. Làm thế nào để tùy chỉnh tableView Section View - iPhone
- 24. Truy vấn SQL cho Loại bài đăng tùy chỉnh và Nhiều trường tùy chỉnh
- 25. Cách lấy văn bản chính xác từ Chỉnh sửa văn bản và đặt thành dạng xem văn bản trong android
- 26. SQLAlchemy: truy vấn thuộc tính tùy chỉnh dựa trên trường bảng
- 27. Chỉnh sửa trường văn bản trong Appengine Datastore Viewer
- 28. Cách truy cập văn bản mô tả trong rspec
- 29. Cách truy cập hộp văn bản HTML từ javascript?
- 30. Tùy chỉnh UIButton cho Iphone
Điều gì sẽ xảy ra nếu tôi có nhiều ô với trường văn bản (như thêm chế độ xem số liên lạc trên ứng dụng danh bạ)? Tôi có nên thêm phương pháp khác cho mỗi chế độ xem không? – Rodrigo
Tìm thấy ở đây http://stackoverflow.com/questions/3572377/iphone-how-to-read-the-data-in-uitableview/3572595#3572595 mà bạn có thể thay đổi các thẻ cho các trường văn bản, vì vậy tôi có thể có một phương pháp và bật nó lên. – Rodrigo
Tôi sử dụng UIControlEventEditingDidEnd. UIControlEventValueChanged dường như không được gọi là:? – whatever0010011