코코아에서 지연 메뉴로 nsbutton을 만들고 싶습니다. 즉, 클릭하면 액션 메소드가 호출되고 2 초 동안 눌려진 상태로 유지되면 nsmenu가 표시됩니다.지연된 NSMenu로 NSButton을 만드는 방법은 무엇입니까?
Xcode 도구 모음에있는 "Build Active Target"버튼과 유사합니다.
감사합니다,
Dhanaraj.
코코아에서 지연 메뉴로 nsbutton을 만들고 싶습니다. 즉, 클릭하면 액션 메소드가 호출되고 2 초 동안 눌려진 상태로 유지되면 nsmenu가 표시됩니다.지연된 NSMenu로 NSButton을 만드는 방법은 무엇입니까?
Xcode 도구 모음에있는 "Build Active Target"버튼과 유사합니다.
감사합니다,
Dhanaraj.
이것은 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];
초 동안 클릭/개최하면 어떻게 다른 행동을합니까? – zrxq
나는 그것을 알고 싶다. 아마도 Apple의 ButtonMadness 샘플이 도움이 될지도 모릅니다. 이 코드에는 그 아래에 메뉴를 표시 할 수있는 DropdownButton이 있습니다. 하지만 NSPopupButton이 아닌 일반적인 NSButton 일뿐입니다. 아마도 지연된 NSTimer 또는 뭔가 mouseUp 이벤트가 잠시 후에 발생하지 않은 경우 버튼 액션을 실행하는 대신 메뉴를 표시 할 수 있습니다. https://developer.apple.com/library/mac/#samplecode/ButtonMadness/Introduction/Intro.html에서 코드를 참조하십시오. –
내가 [여기]이 질문에 대답 한 (http://stackoverflow.com/questions/9196109/nsbutton-with-delayed-nsmenu-objective-c-cocoa/39951734#39951734). [내 GitHub 코드] (https://github.com/evgenybaskakov/ButtonWithMenuOnLongClick)는 일반 NSButton을 기반으로하는 동작을 정확히 구현합니다. – evgeny