У меня есть NSPopUpButton, настроенный с привязками и основными данными. Все работает отлично, однако я хотел бы добавить элемент, который реализует действие для «редактирования списка», например
Item 1
Item 2
Item 3
Item 4
------
Edit List..
Возможно ли это сделать с привязками?
Я думаю, что ответ НЕТ, по крайней мере, не полностью. Я думал, что предоставлю content кнопку программно и буду поддерживать привязки для Selected Value , и вот что я придумал
- (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:]
добавляет элемент в конец списка. - person Andriy   schedule 31.01.2014