Как создать NSButton с задержкой NSMenu? - PullRequest
0 голосов
/ 22 июля 2010

В Какао я хочу создать кнопку с отложенным меню. т. е. при нажатии он должен вызывать метод действия, а при удерживании в нажатом состоянии в течение 2 секунд должен отображаться меню.

Это похоже на кнопку «Создать активную цель», присутствующую на панели инструментов Xcode.

С уважением,

Dhanaraj.

1 Ответ

1 голос
/ 22 июля 2010

Это NSPopUpButton .. Вот как я создаю его в моем приложении.

NSToolbarItem* item = [[[NSToolbarItem alloc] initWithItemIdentifier:identifier] autorelease];
[item setLabel:label];
[item setPaletteLabel:label];
[item setToolTip:tooltip];

NSPopUpButton* button = [[[NSPopUpButton alloc] initWithFrame:NSMakeRect(0, 0, 200, 24) pullsDown:NO] autorelease];
NSMenu* menu = [button menu];
// insert code here, that adds NSMenuItems to the menu

[button setTarget:self];
[button setAction:@selector(menuAction:)];
[[button cell] setBezelStyle:NSTexturedRoundedBezelStyle];
[[button cell] setArrowPosition:NSPopUpArrowAtBottom];
[[button cell] setFont:[NSFont systemFontOfSize:14]];
[item setView:button];
...