我正在使用 Finder Sync Extension 构建一个 macOS 应用程序,它向 Finder 添加了一个工具栏项。
我创建了这样的工具栏项目菜单:
- (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
with的子类@property (NSURL*) URL
,并在创建项目时设置 URL 属性,但单击后 URL 属性再次变为 nil。
那么这里出了什么问题呢?