2011-08-31 30 views

Trả lời

0

Bạn chỉ có thể giữ giá trị BOOL ở đâu đó trong lớp học mà bạn đặt thành YES hoặc NO khi bạn bắt đầu và ngừng hoạt ảnh tương ứng.

+1

Tôi có thể. Nhưng tôi không muốn phân lớp tất cả các lớp Cocoa tôi sử dụng :) –

+0

Tại sao bạn phải phân lớp tất cả chúng? Bạn có thể không chỉ giữ một tài sản BOOL trong lớp đại biểu của bạn hoặc một cái gì đó? Hay bạn có nhiều chỉ số tiến trình? – edc1591

+2

Tôi có nhiều hơn một. Ngoài ra, mỗi đối tượng nên giữ thông tin về trạng thái riêng của nó, không phải các lớp bên ngoài. –

4

Bạn không nên lưu trữ trạng thái của điều khiển trong chính điều khiển.

Điều khiển chỉ báo tiến trình không cung cấp quyền truy cập vào trạng thái hoạt ảnh vì không giống như trường văn bản, người dùng không thể thay đổi trạng thái điều khiển. Bạn sẽ không bao giờ ở trong tình huống mà trạng thái của điều khiển thay đổi mà không cần mã của bạn khởi tạo nó. Bởi vì bạn là người đặt ra trạng thái của nó, vì vậy bạn nên theo dõi nó.

Ca cao sử dụng mẫu Model-View-Controller và chỉ báo tiến trình là chế độ xem. Nếu bạn lưu trữ trạng thái trong điều khiển thì bạn đang vi phạm mẫu MVC.

Chế độ xem của bạn phải phản ánh Mô hình của bạn mọi lúc và Trình điều khiển ở đó để đảm bảo chế độ xem và mô hình được giữ đồng bộ.

Bạn nên sử dụng Bindings Cocoa để liên kết trạng thái hoạt ảnh của chỉ báo tiến trình thành BOOL được lưu trữ trong mô hình của bạn (ưa thích) hoặc thực thi mã trong lớp điều khiển của bạn để kiểm soát trạng thái hoạt ảnh của chỉ báo tiến trình khi có thay đổi đến một số BOOL được lưu trữ trong mô hình của bạn.

+0

Có vẻ như không có thuộc tính 'isAnimating' cho' NSProgressIndicator' (ít nhất tôi không thể tìm thấy nó trong tài liệu), do đó không có cách nào để sử dụng Cocoa Bindings cho điều này: ( – wcochran

+0

Đó là 'animate' bất động sản. –

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