У меня есть NSPopUpButton, настроенный с привязками и coredata. Все работает отлично, но я хотел бы добавить элемент, который реализует действие, «редактировать список», какКак настроить контент для NSPopUpButton
Item 1
Item 2
Item 3
Item 4
------
Edit List..
Возможно ли это сделать с креплениями?
Я думаю, что ответ НЕТ, по крайней мере, не полностью. Я думал, что обеспечу содержания на кнопку программна и сохранить привязки для выбранного значения, так это то, что я придумал
- (void)updateSectorPopupItems
{
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Sector"];
NSSortDescriptor *sortPosition = [[NSSortDescriptor alloc] initWithKey:@"position" ascending:YES];
[request setSortDescriptors:@[sortPosition]];
NSError *anyError = nil;
NSArray *fetchObjects = [_gdcManagedObjectContext executeFetchRequest:request
error:&anyError];
if (fetchObjects == nil) {
DLog(@"Error:%@", [anyError localizedDescription]);
}
NSMutableArray *sectorNames = [NSMutableArray array];
for (NSManagedObject *sector in fetchObjects) {
[sectorNames addObject:[sector valueForKey:@"sectorCatagory"]];
}
[_sectorPopUpBotton addItemsWithTitles:sectorNames];
NSInteger items = [[_sectorPopUpBotton menu] numberOfItems];
if (![[_sectorPopUpBotton menu] itemWithTag:1]) {
NSMenuItem *editList = [[NSMenuItem alloc] initWithTitle:@"Edit List..." action:@selector(showSectorWindow:) keyEquivalent:@""];
[editList setTarget:self];
[editList setTag:1];
[[_sectorPopUpBotton menu] insertItem:editList atIndex:items];
}
Несколько проблем, которые я имею с этим
1) при добавлении пункта меню не используя
[_sectorPopUpBotton menu] insertItem:editList atIndex:items];
независимо от того, какое значение вводится в atIndex, элемент всегда появляется в верхней части списка меню.
2) Я просто хочу, чтобы меню «Редактировать список ...» инициировал действие, как я могу предотвратить его выбор в качестве значения?
'[NSMenu addItem:]' добавляет элемент в конец списка. – Andriy
@ Andriy попробовал это, но элемент все еще находится в верхней части списка. – Cory
С привязками он всегда будет наверху. – Volker