내 앱에서 드래그 앤 드롭을 구현 중입니다.UITextView에서 드래그 앤 드롭으로 텍스트 커서 표시
드래그 앤 드롭이 적용되는 (주로 드롭) 기본 화면 중 하나는 UITextView
입니다.
는 다음 코드와이 UITextView
에 드롭 상호 작용을 추가했습니다 :
let dropInteraction = UIDropInteraction(delegate: self)
inputTextView.addInteraction(dropInteraction)
그래서 지금의 드롭을 받아들이함으로써.
하십시오UIDropProposal
를 반환 할뿐만 아니라 다음과 같은 필수 위임 방법을 내가 구현 한 필요에 따라
func dropInteraction(_ interaction: UIDropInteraction, canHandle session: UIDropSession) -> Bool {
return session.hasItemsConforming(toTypeIdentifiers: [kUTTypeImage as String, kUTTypeText as String]) && session.items.count == 1
}
: I 구현 한 방울로 다음 대리자 메서드 만 이미지와 텍스트를 수용하기 위해
performDrop의 대리자 메서드에서 다음
func dropInteraction(_ interaction: UIDropInteraction, sessionDidUpdate session: UIDropSession) -> UIDropProposal {
let dropProposal: UIDropProposal = UIDropProposal(operation: .copy)
dropProposal.isPrecise = true
return dropProposal
}
나는 떨어 내용을 처리하고 UITextView
이 모든 작업을 수행하면 이미지와 텍스트가 모두 원하는 필드에 예상대로 삭제되지만 여기에는 한 가지 문제가 있습니다.
메일 앱의 New Mail Composer
에서는 항목이나 이미지를 드래그 할 때 추적 커서가 표시되어 드롭 콘텐츠가 어디로 이동하는지 알 수 있지만 예제에서는 수행 할 수 없습니다.
방울은 기존 텍스트의 끝 부분으로 이동합니다.
특정 위치로 이동하려면 원하는 위치에 커서를 놓은 다음 놓기를 수행해야합니다. 따라서 performDrop
함수에서 selectedRange
으로 커서 위치를 검색합니다.
메일 응용 프로그램이나 메모 앱처럼 드롭 애니메이션이 발생하는 커서 흐름을보고 싶습니다. 드롭 응용 프로그램이있는 곳을 선택할 수 있습니다.
아무에게도이를 달성하는 방법에 대한 힌트가 있습니까?
미리 감사드립니다.
흠
NSMakeRange(calculatedLoc, 0)
에 원하는 위치를 찾을 수 ... 결코 textView 테두리 rect 사용하여 기억! 나는 당신이 말한 것을 시도해보고 나서 피드백을주기 위해 다시 컴백 할 것입니다. –@Ivan Cantarino 시도 했습니까? – Maurice
몇 가지 사소한 변화와 함께 나는 그것을 작동시킬 수있었습니다. –