2017-09-05 6 views
1

3 개의 NSTableView와 1 개의 NSCollectionView가있는 창이 있습니다. collectionview는 이미지를 표시합니다. 이미지 중 하나를 선택하고 키보드 삭제 키를 사용하여 삭제할 수 있기를 원하지만 collectionview가 첫 번째 응답자가 될 수 없습니다. tableviews 중 하나를 선택하고 keyDown을 재정 의하여 키보드 입력을 허용 할 수 있지만 collectionview에서는 작동하지 않습니다. 나는 다른 곳에서 makeFirstResponder (_ :)를 사용하여 collectionview에 포커스를 두었지만 그 app에는 하나의보기 만있었습니다. 내가 뭘 잘못했는지 생각해?NSCollectionView는 키 이벤트를 허용하지 않습니다.

답변

0

컬렉션보기에서 이미지를 선택하거나 키보드의 화살표 키를 사용하여 컬렉션보기에서 탐색 할 수 있다면 일반적으로 컬렉션보기가 firstResponder임을 의미합니다.

그래서 컬렉션보기가 활성화되어 있는지 선택을 시도하십시오.

삭제 키가 키 대등 문자 read more here 일 수도 있습니다. 그렇다면 performKeyEquivalent(with:) 메서드를 재정 의하여 이러한 유형의 이벤트를 수신해야합니다.

또한 NSCollectionView keyDown(with:) 메서드는 응답기 체인 위로 키 이벤트를 전달하지 않습니다. 슈퍼 뷰에서 이러한 이벤트를 처리하려면 컬렉션 뷰에서 직접 처리해야하는 이벤트에 대해 self.nextResponder?.keyDown(with: event)을 호출하여이를 오버라이드해야합니다.

관련 문제