也许我很愚蠢,但我花了整个下午试图弄清楚这一点。我是一名 Objective C 新手,但在其他语言方面有丰富的经验。
我有两个NSCollectionView
-在一个菜单内*eventsView
。*projectsView
每个都有自己itemPrototype
的两个子类,NSCollectionViewItem
它们都有自己的 .xib 文件。
问题是它始终是第一个加载的 .xib 文件 - 对于两者NSCollectionViewItem
。所以projectsView
不会加载它自己的 .xib 但它会加载eventsView
一个。有趣的是,如果我删除了那个 .xib,两者都会加载第二个 .xib,而之前没有人加载过。
我已经用完了在 Google 上搜索的关键字,所以我来了。
代码(虽然我不知道这很重要)是:
NSMenuItem *events = [[NSMenuItem alloc] init];
self.eventsView = [[NSCollectionView alloc] initWithFrame:NSZeroRect];
HeadquartersEventsViewItem *eventsPrototype = [[HeadquartersEventsViewItem alloc] init];
[self.eventsView setItemPrototype:eventsPrototype];
[events setView:self.eventsView];
[self.menu addItem:events];
[self fetchEvents];
[self.menu addItem:[NSMenuItem separatorItem]];
NSMenuItem *projects = [[NSMenuItem alloc] init];
self.projectsView = [[NSCollectionView alloc] initWithFrame:NSZeroRect];
HeadquartersProjectsViewItem *projectsPrototype = [[HeadquartersProjectsViewItem alloc] init];
[self.projectsView setItemPrototype:projectsPrototype];
[projects setView:self.projectsView];
[self.menu addItem:projects];
[self fetchProjects];
问题在哪里?为什么 Xcode 不区分这两个 .xib?