23 drag drop

Preview:

Citation preview

23장 드래그 & 드롭

드래그 & 드롭

드래그 & 드롭

• 드래그 시작.

드래그 & 드롭

• 드래그 시작.

• 드래깅 페이스트보드로 복사.(Dragging Pasteboard)

드래그 & 드롭

• 드래그 시작.

• 드래깅 페이스트보드로 복사.(Dragging Pasteboard)

• 드롭.

드래그 & 드롭

• 드래그 시작.

• 드래깅 페이스트보드로 복사.(Dragging Pasteboard)

• 드롭.

• 드래깅 페이스트보드부터 복사.

드래그 출발지 설정

드래그 피드백

드래그 행위 처리

드롭시 처리

드래그 출발지

수용할 드래그 타입 등록

드래그 & 드랍 행위 처리

드롭 피드백

드래그 연산 마스킹

드래그 목적지

23장 드래그 & 드롭

피드백

• Copy & Paste 보다 추가할 사항.

• 사용자에게 적절한 피드백.

• 드래그 아이템 표시.

• 드래그할 때 뷰 하이라이트.

• 효과음.

드래그 출발지

• 드래그를 지원해주기 위해서.

• draggingSourceOperationMaskForLocal: 구현.

• isLocal 인자 - 앱 내/외부 구분

드래그 시작

• 드래그 행위 피드백.

• 드래그 이미지, 위치.

• 드래그 취소시 드래그 이미지 복귀 여부.

드래그 행위

마우스 드래그 거리 측정

드래그 이미지 생성

드래그 이미지 위치 설정

페이스트보드에 복사

드래그 수행

드래그 행위 처리

마우스 이동 거리 측정

드래그 이미지 생성

드래그 이미지 위치 설정

드래그 페이스트보드에 복사

드래그 수행

드롭시 처리 (소스측)

• 드래그 출발지 이벤트.

• 휴지통으로 드롭 한 경우,NSDragOperationDelete 발생.

드래그 목적지수용할 드래그 타입 등록

드래그 & 드랍 행위 처리

드롭 피드백

드래그 연산 마스킹

드래그 목적지

드래그 프로토콜• 드래그 목적지 메서드는

NSDragginInfo 프로토콜을 따르는 객체를 가진다.

드래그가 들어온 경우

draggingEntered:

draggingUpdated:

draggingExited:

prepareForDragOperation:

performDragOperation:

concludeDragOperation:

드래그 & 드랍 행위 처리

드래그가 빠져나간 경우

드롭 처리

draggingEntered:

draggingUpdated:

draggingExited:

prepareForDragOperation:

performDragOperation:

concludeDragOperation:

드래그 & 드랍 행위 처리

더 파고들기드래그 연산 마스킹

• 컨트롤, 옵션, 커맨드 키와 함께 드래깅되는 경우.

Recommended