我正在用Finder Sync Extension構建一個macOS應用程序,它向Finder添加了一個工具欄項目。Finder Sync Extension的工具欄項目菜單的奇怪行爲
我創建的工具欄項目菜單是這樣的:
- (NSMenu *)menuForMenuKind:(FIMenuKind)whichMenu {
NSMenu *menu = [NSMenu new];
NSURL *URL = ...// Create a NSURL dynamically
NSMenuItem *item = [NSMenuItem new];
[item setTitle:@"foo"];
[item setRepresentedObject:URL];
[item setTarget: self];
[item setAction:@selector(itemClicked:)];
[menu addItem:item];
return menu;
}
- (void)itemClicked:(NSMenuItem *)item {
NSLog(@"%@", item.representedObject);
}
的項目都出現了標題爲「foo」的,但是當我點擊它(null)
被打印出來。
我也嘗試創建NSMenuItem
的子類@property (NSURL*) URL
,並在創建項目時設置URL屬性,但在單擊URL屬性後再次變爲nil。
那麼這裏出了什麼問題?
Thx!我最終將URL保存爲NSUserDefaults中的數組,並將每個項目的標記設置爲其在數組中的URL索引。 –