我有一个标准NSMenu这样如何动态调整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];
正如你可以看到有在菜单中的每个选项“重复”项目。当您按下选项(alt)键以显示菜单时,会显示该项目的副本。
的问题是,菜单尺寸的变化,而这是示出了替代的菜单项,因为这个菜单的标题比原稿更大,它永远不会恢复到原来的大小,从而产生这样的:
任何想法,我该如何解决它? 谢谢
你说得对。我只是在XCode的'产品'菜单中看到相同的行为。谢谢 –