Tôi có một NSMenuItem với một loạt các mục trong đó, tuy nhiên ... danh sách chỉ không được bật.NSMenuItem bật các mục
Những gì tôi có nghĩa là:
Đây là mã của tôi:
- (void)didFetchNewList:(NSArray *)list
{
NSArray *smallList = [list subarrayWithRange:NSMakeRange(0, 10)];
NSMenu *menu = [[NSMenu alloc] initWithTitle:@""];
for (NSDictionary *dict in smallList)
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MMM dd @ HH:mm:ss"];
NSMenuItem *soMenuItem = [[NSMenuItem alloc] initWithTitle:
[dateFormatter stringFromDate:[dict objectForKey:@"date"]]
action:nil
keyEquivalent:@""];
[soMenuItem setEnabled:YES];
[menu addItem:soMenuItem];
}
[menu addItem:[NSMenuItem separatorItem]];
NSMenuItem *soMenuItem = [[NSMenuItem alloc]
initWithTitle:@"Settings" action:nil keyEquivalent:@"S"];
[soMenuItem setEnabled:YES];
[menu addItem:soMenuItem];
[statusItem setMenu:menu];
[statusItem setEnabled:YES];
}
Tôi đang thiết lập mọi thứ đã được kích hoạt, nhưng nó vẫn bị vô hiệu hóa. Làm sao tôi có thể giải quyết việc này?
Trong khi các mục menu cần có bộ chọn hợp lệ, chúng không nhất thiết phải có mục tiêu (nói cách khác, mục tiêu ** có thể ** là 'nil'). Mục tiêu 'nil' có nghĩa là" sử dụng đối tượng đầu tiên trong chuỗi phản hồi trả lời cho bộ chọn của tôi ". Nó có chức năng tương đương với việc thiết lập mục tiêu của mục menu thành đối tượng proxy 'First Responder' trong tệp nib. (Xem http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/MenuList/Articles/EnablingMenuItems.html#//apple_ref/doc/uid/20000261-74653-BAJBGJHB) – NSGod
Aha! Tôi đã suy nghĩ về lý do tại sao địa ngục phương thức khởi tạo không có đối số đích. Cám ơn giải thích rõ ràng! – v1Axvw
Chỉnh sửa thứ hai của bạn vẫn không hoàn toàn chính xác: Người trả lời đầu tiên sẽ nhận được thông báo hành động, nhưng không cần thực hiện nó. Nếu không, nó sẽ chuyển tiếp tin nhắn tới phần trả lời tiếp theo của nó. Đó là chuỗi trả lời tại nơi làm việc. –