NSProgressIndicator
có các phương pháp được gọi là startAnimation:
và stopAnimation:
, nhưng không có phương pháp nào tôi có thể tìm thấy để kiểm tra trạng thái (cho dù hiện tại có hoạt ảnh hay không). Bạn sẽ làm điều này như thế nào?Làm thế nào để kiểm tra xem một NSProgressIndicator hiện đang hoạt hình?
Trả lời
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.
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.
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
Đó là 'animate' bất động sản. –
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 :) –
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
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. –