Tôi đã triển khai tiện ích mở rộng Trình tìm kiếm đồng bộ hóa theo mẫu được cung cấp từ Apple.Tìm kiếm đồng bộ hóa: Người gửi được chuyển đến hành động là trường hợp khác nhau của NSMenuItem
Sau khi nhấp vào mục menu ngữ cảnh mới được tạo, hành động theo sau sampleAction
được thực hiện. Rất tiếc, người gửi được chuyển đến phương thức không khớp với cá thể được tạo trong menuForMenuKind
.
Mã
- (NSMenu *)menuForMenuKind:(FIMenuKind)whichMenu
{
NSMenuItem* menuItem = [[NSMenuItem alloc] initWithTitle:@"testTitle" action:@selector(sampleAction:) keyEquivalent:@""];
menuItem.tag = 1;
// print menu attributes
NSLog(@"------------------original menu-----------------");
NSLog(@"menu address: %p", menuItem);
NSLog(@"menu tag: %ld", menuItem.tag);
NSLog(@"menu title: '%@'", menuItem.title);
NSMenu *menu = [[NSMenu alloc] initWithTitle:@""];
[menu addItem:menuItem];
return menu;
}
- (IBAction)sampleAction:(id)sender
{
if([sender isKindOfClass:[NSMenuItem class]])
{
NSMenuItem* menuItem = sender;
NSLog(@"------------------menu passed to action-----------------");
NSLog(@"menu address: %p", menuItem);
NSLog(@"menu tag: %ld", menuItem.tag);
NSLog(@"menu title: '%@'", menuItem.title);
}
}
kết quả ở đầu ra sau đây sau khi tôi nhấp vào phần tử trong menu ngữ cảnh
2014-12-07 19:55:36.923 FinderSync Extension[1265:62630] ------------------original menu----------------
2014-12-07 19:55:36.923 FinderSync Extension[1265:62630] menu address: 0x6080000abbe0
2014-12-07 19:55:36.924 FinderSync Extension[1265:62630] menu tag: 1
2014-12-07 19:55:36.924 FinderSync Extension[1265:62630] menu title: 'testTitle'
2014-12-07 19:55:40.328 FinderSync Extension[1265:62630] ------------------menu passed to action----------------
2014-12-07 19:55:40.328 FinderSync Extension[1265:62630] menu address: 0x6080000aba00
2014-12-07 19:55:40.328 FinderSync Extension[1265:62630] menu tag: 0
2014-12-07 19:55:40.328 FinderSync Extension[1265:62630] menu title: ''
.
Có cơ hội nào để liên kết người gửi đến mục menu đã được nhấp vào không?
Bạn có giải pháp nào cho điều này không? –
Chưa, thật không may: ( –
hmm cho Apple biết về nhu cầu của bạn bằng cách sử dụng hệ thống báo cáo lỗi Apple. Bây giờ tôi đang sử dụng bộ chọn khác nhau cho các mục menu khác nhau. –