3

このような標準の 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) キーを押すと表示されます。

問題は、このメニューのタイトルが元のサイズよりも大きく、元のサイズに戻らないため、代替メニュー項目を表示している間にメニューのサイズが変更され、次のようになることです:

ここに画像の説明を入力

どうすれば修正できますか?ありがとう

4

2 に答える 2

0

NSMenuItem のタイトルを変更するだけです

[[appmenu itemAtIndex:0]setTitle:[NSString stringWithFormat:@"EditNewAndUpload \t \t \t \t \t"]];
于 2015-08-06T13:27:38.710 に答える