У меня есть стандартное NSMenu, подобное этому
Это меню было создано с этим кодом:
NSMenu *menu = [[NSMenu alloc] init];
NSMenuItem *addMenuItem = [[NSMenuItem alloc] init];
[addMenuItem setTitle:[NSString stringWithFormat:@"Upload"]];
[addMenuItem setHidden:NO];
[addMenuItem setRepresentedObject:contentType];
[addMenuItem setTarget:self];
[addMenuItem setAction:@selector(performSelectedDragOperation:)];
[addMenuItem setTag:operation];
[addMenuItem setEnabled:YES];
[menu addItem:addMenuItem];
NSMenuItem *alterMenuItem = [addMenuItem copy];
[alterMenuItem setTitle:@"Upload in Folder"];
[alterMenuItem setKeyEquivalentModifierMask:NSAlternateKeyMask];
[alterMenuItem setAlternate:YES];
[menu addItem:alterMenuItem];
[alterMenuItem release];
[addMenuItem release];
NSMenuItem *addMenuItem2 = [[NSMenuItem alloc] init];
[addMenuItem2 setTitle:[NSString stringWithFormat:@"EditNewAndUpload"]];
[addMenuItem2 setHidden:NO];
[addMenuItem2 setRepresentedObject:contentType];
[addMenuItem2 setTarget:self];
[addMenuItem2 setAction:@selector(performSelectedDragOperation:)];
[addMenuItem2 setTag:operation];
[addMenuItem2 setEnabled:YES];
[menu addItem:addMenuItem2];
NSMenuItem *alterMenuItem2 = [addMenuItem2 copy];
[alterMenuItem2 setTitle:@"EditNewAndUpload in Folder"];
[alterMenuItem2 setKeyEquivalentModifierMask:NSAlternateKeyMask];
[alterMenuItem2 setAlternate:YES];
[menu addItem:alterMenuItem2];
[alterMenuItem2 release];
[addMenuItem2 release];
Как вы можете видеть, есть "дубликат »для каждой опции в меню.Эта копия элемента отображается, когда вы нажимаете клавишу option (alt), когда меню видно.
Проблема заключается в том, что размер меню изменяется при отображении альтернативных пунктов меню.потому что название этого меню больше, чем оригиналы, и оно никогда не возвращается к исходному размеру, что приводит к следующему:
Есть идеи, как это исправить?Спасибо