【问题标题】:How do I adjust the size of an NSMenu to its content dynamically?如何动态调整 NSMenu 的大小以适应其内容?
【发布时间】:2011-07-08 19:19:36
【问题描述】:

我有一个像这样的标准 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) 键时会显示该项目的副本。

问题是菜单大小在显示备用菜单项时会发生变化,因为此菜单的标题大于原始菜单,并且它永远不会恢复为原始大小,从而产生:

知道如何解决它吗? 谢谢

【问题讨论】:

    标签: cocoa osx-snow-leopard nsmenuitem nsmenu


    【解决方案1】:

    这是正常行为,您不必担心。如果你想改变它,file a bug

    【讨论】:

    • 你是对的。我只是在 XCode 'Product' 菜单中看到了相同的行为。谢谢
    【解决方案2】:

    您只需要更改 NSMenuItem 标题

    [[appmenu itemAtIndex:0]setTitle:[NSString stringWithFormat:@"EditNewAndUpload \t \t \t \t \t"]];
    

    【讨论】:

      猜你喜欢
      • 2021-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      相关资源
      最近更新 更多