2017-12-28 9 views
0

NSSpringLoadingDestination을 구현하는 NSOutlineView 하위 클래스가 있습니다.NSOutlineView 스프링로드가 NSButton이 아닌 NSImageView에서 종료됩니다.

개요보기는 NSTableCellViews로 채워집니다. 각 테이블 셀 뷰에는 NSTextField 및 NSImageView가 있습니다. Finder 윈도우의 이름 열과 같습니다 : 아이콘 및 텍스트.

다른 행의 텍스트 필드 위에 행을 드래그하면 모든 것이 잘 동작합니다. 그러나 커서가 NSImageView 위로 이동하면 스프링로드가 종료됩니다.

개요보기도 해당 행에 대한 강조 표시를 잃습니다.

이미지가 포함 된 NSButton으로 이미지보기를 바꾸면 스프링 로딩이 종료되지 않습니다. 그리고 개요보기는 강조 표시를 유지합니다.

NSControl이 스프링 로딩을 방해하지 않지만 NSImageView가 왜 그런지 말할 수 있습니까?

일부 다른 NSView 메서드를 재정의하려고 시도했지만 이미지보기를 단추처럼 동작 할 수 없습니다.

감사합니다.

+0

이미지보기를 편집 할 수 있습니까? 드래그 페스트 보드에 무엇이 있습니까? 'NSImageView'는 드래그 된 이미지를 받아 들일 수 있습니다. NSButton은 그럴 수 없습니다. – Willeke

+0

isEditable = false, allowCutCopyPaste = false하지만 아무 것도 변경되지 않습니다. 나는 또한 NSImageView를 하위 클래스 화하고 NSDringingDestination을 구현하여 springLoadingEntered (_ :)에서 .disabled를 반환했지만 작동하지 않았다. 그런 다음 hitTest (_ :)를 다시 시도했지만 아무런 결과도 반환하지 않았습니다. 이것은 내가 이해하지 못하는 것입니다. NSImageView 대신 NSButton을 사용하면 문제가 사라집니다. 그러나 isSpringLoaded = false이면 이미지보기와 동일한 문제가 있습니다. 난 그 속성이 이미지보기에서 할 수없는 스프링 로딩을 비활성화하는 것을 어떻게하는지 궁금 할뿐입니다. – user5892643

+0

나는 이것을 시도하고 springloaded 버튼은 이미지 뷰와 같은 문제가 있고 springloaded 버튼은 아니다. isSpringLoaded = false'에 대한 확신이 있습니까? – Willeke

답변

0

이미지보기가 편집 할 수없는 경우에도 여전히 끌어서 & 드롭을 처리합니다. 이 호출을 수정하려면 이미지보기의 unregisterDraggedTypes 메소드를 사용하십시오.