也许我很愚蠢,但整个下午我都想弄清楚这个。我是一名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不区分这两个.xibs?