2010-07-26 10 views
6

Tôi có một menu trong đó một số mục menu sử dụng các kết buộc để lấy tiêu đề của chúng. Các mục này luôn được bật và không tự động bật/tắt như NOR nên chúng thực hiện cuộc gọi đến validateUserInterfaceItem :. Nếu bạn loại bỏ các ràng buộc trên tiêu đề, sau đó bắt đầu làm việc trở lại. Các mục menu có target được đặt thành nil (First Responder). Nếu bạn bấm vào một, nó thực thi bộ chọn (hành động).Ràng buộc ngắt tiêu đề của NSMenuItem được bật/tắt xác thực

Lỗi? Phải làm gì?

+1

Chỉ cần lưu ý rằng đây vẫn là trường hợp gần 5 năm sau đó. – DanielGibbs

+1

Và vẫn còn hai năm sau đó. – matt

Trả lời

4

Vì một số lý do khi bạn đặt tiêu đề của mục menu với các liên kết, mục menu sẽ được bật ngay cả khi mục tiêu/hành động là nil.

Nếu bạn muốn vô hiệu hóa vĩnh viễn các mục trình đơn, bạn có thể workaround này bằng cách gắn tình trạng enabled mục trình đơn để một hằng số NO:

NSNumber *alwaysNo = [NSNumber numberWithBool:NO]; 
[menuItem bind:@"enabled" toObject:alwaysNo withKeyPath:@"boolValue" options:nil]; 

Lưu ý rằng đây không phải là cách giải quyết thanh lịch nhất, nhưng trong tôi trường hợp nó vẫn sạch hơn không sử dụng các ràng buộc cho tiêu đề.

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