NSMutableArray에 드래그 된 항목을 추가하기 위해 드롭 다운을 허용하는 NSButton이 있습니다. 어떻게하면 NSMutableArray의 모든 항목을 드래그하기 위해 NSButton에서 드래그 할 수 있습니까?MacOS에서 NSButton에서 드래그하는 방법 Lion
답변
NSView 메서드를 사용하는 한 가지 방법은 dragImage : at : offset : event : pasteboard : source : slideBack :을 사용하여 드래그를 시작하는 것입니다. 사용자 정의 버튼 클래스에서 mouseDown :을 재정의하고 해당 메소드를 호출합니다. 드래그 한 이미지가 버튼의 이미지이고 드래그하는 데이터가 "ARRAY"문자열 인 예제를 작성했습니다. 소스 측에서해야 할 일은 모두 있어야합니다. 목적지에 드롭하면, "ARRAY"라는 문자열이 끊어 졌는지 확인한 다음, 생성 한 배열로 원하는 작업을 수행하십시오. 첫 방울로. 내 버튼에 NSMultipleDocuments 이미지를 사용했는데 버튼 밖으로 드래그하면 사라집니다.
- (void)mouseDown:(NSEvent *)theEvent {
NSImage *pic = self.image;
NSSize dragOffset = NSMakeSize(0.0, 0.0);
NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSDragPboard];
[pboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:self];
[pboard writeObjects:[NSArray arrayWithObject:@"ARRAY"]];
NSPoint btnMiddle = NSMakePoint(self.frame.size.width/2,self.frame.size.height/2);
NSPoint picOrigin = NSMakePoint(btnMiddle.x - pic.size.width/2, btnMiddle.y + pic.size.height/2);
self.image = nil;
[self dragImage:pic at:picOrigin offset:dragOffset event:theEvent pasteboard:pboard source:self slideBack:YES];
}
작동하지만 한 가지 문제가 있습니다. 이제 'clickAction'을 호출하기 위해 버튼을 클릭 할 수 없습니다. – Kira
나는 그렇게하기에는 까다로울 수 있다고 생각합니다. [super mouseDown : theEvent]를 추가해 보았습니다. 그런 식으로 일했지만, 다른 모든 시간에는 작동하는 것처럼 보였습니다. 그리고 끌기 대신 처음을 클릭하면 이미지가 사라집니다. 왜 어떤 식 으로든 버튼에 항목을 드래그하고 싶지 않으시 나? – rdelmar
버튼은 테이블이있는 윈도우를 엽니 다 (드래그 앤 드롭 지원). 하지만이 창을 열지 않고도 드래그 앤 드롭을 버튼에서/버튼으로 가져오고 싶습니다. ARRAY 내용을 표시하는 데 사용되는 표. – Kira
- 1. NSButton에서 이미지를 수직으로 센터링하는 방법
- 2. macOS에서 vsync를 비활성화하는 방법
- 3. NSButton에서 런타임시 독립적으로 축의 축척을 조절하는 방법
- 4. JTabbedPane에서 탭을 드래그하는 방법
- 5. 동기화에서 레이어를 드래그하는 방법
- 6. 화면에서 이미지를 드래그하는 방법
- 7. MacOS에서 시스템 전체 데몬을로드하는 방법
- 8. MacOS에서 ruby 1.9.3-p125와 일관된 세그먼테이션 결함을 해결하는 방법 libsystem_kernel.dylib의 Lion
- 9. NSButton에서 키를 표시하는 방법은 무엇입니까?
- 10. NSButton에서 사운드 사용 안 함
- 11. MacOS에서 Java.lang.UnsupportedClassVersionError
- 12. 캐 러셀에서 뷰를 드래그하는 방법
- 13. 여러 개의 ImageView를 드래그하는 방법?
- 14. UIView를 Xcode의 Canvas로 드래그하는 방법
- 15. 두 손가락으로 뷰를 드래그하는 방법
- 16. 개발 목적으로 MacOS에서 인터넷 연결을 느리게하는 방법
- 17. MacOS에서 QFileDialog :: getSaveFileName (...)을 사용하는 방법
- 18. MacOS에서 루아를 어떻게 설치합니까?
- 19. macos에서 포트 바인딩
- 20. MacOS에서 Pythonika 컴파일
- 21. MacOS에서 Python3 설치
- 22. MacOS에서 비디오 캡처
- 23. MacOS에서 젠킨스 포트 변경
- 24. C, MacOS에서 경고음 재생
- 25. glewInit() macOS에서 실패
- 26. 플래시 UI, 트윈으로 심볼을 드래그하는 방법
- 27. 원을 그리며 이동/Android에서 터치로 드래그하는 방법
- 28. JQuery 드래그 앤 드롭 - 요소를 드래그하는 방법?
- 29. iOS - 애니메이션 도중 요소를 드래그하는 방법
- 30. 키보드가 나타나면 내보기를 조금 위로 드래그하는 방법?
자세히 설명해 주시겠습니까? 단추에 항목을 놓은 다음 배열로 가져 오는 방법을 알고 싶습니까, 아니면 단추에서 항목을 다시 끌어 오는 방법을 묻는 중입니까? – rdelmar
나는 이미 배열에 빠져 들었습니다. 단추에서 다시 끌어 오는 방법을 모르겠습니다. – Kira