2010-08-04 7 views
2

기본적으로 NSTableView에서 이름 바꾸기 트리거를 두 번 클릭합니다.NSTableView 더블 클릭/이름 바꾸기

두 번 클릭하면 대신 내 자신의 사용자 지정 코드 (예 : 두 번 클릭 한 파일 열기)를 트리거 할 수 있습니까?

또한 이름 바꾸기를 처음 한 번 클릭 한 다음 다시 클릭하고 마우스 포인터를 멀리 옮기는 Finder에서와 같이 어떻게 지정할 수 있습니까? 이것이 Finder에서 이름 바꾸기가 시작되는 방식입니다. 나는 그것을 NSTableView에서 원한다.

+0

NSBrowser를 보았습니까? 파인더가 사용하는 것이기 때문에 당신의 요구를 더 잘 채울 것입니다. – theMikeSwan

+0

NSBrowser의 더블 액션과 클릭 편집은 테이블 뷰 (OP가 요구하는 것)와 동일하게 작동합니다. –

답변

7

설명서에 따르면 NSTableView는 -setDoubleAction:입니다. 한 번 클릭하여 행을 선택한 다음 편집 할 텍스트 셀을 클릭하면 기본적으로 Finder처럼 동작합니다.이 기능과 Finder는 포인터를 빨리 이동하는 것과는 아무 관계가 없습니다.

한 번 클릭하여 선택하고 다시 클릭하면 이름이 변경됩니다. 더블 클릭 (더블 클릭이 가능할 정도로 빠름)을 클릭하면 "더블"동작을 처리합니다.

+1

텍스트를 두 번 클릭하면 사용자 지정 작업을 실행하는 대신 편집 모드로 이동한다는 정보를 추가하고 싶습니다. 작업을 실행하고 편집 모드로 들어가는 것을 방지하려면 셀을 @JWWalker가 작성한 것처럼 편집 할 수없는 것으로 설정해야합니다. – xyz

+0

Xcode 테이블 뷰 연결 관리자에는 동일한 조치가 전송됩니다 : "doubleAction". 컨트롤에서 컨트롤러로 (또는 헤더 파일로 드래그하여 액션 메소드 생성) –

+0

@PaulCollins Neat! 이것이 언제 추가되었는지 궁금합니다. 오래전에 나는 그것이 IB에 전혀 없다는 것을 안다. –

2

테이블보기에서 두 번 클릭 동작 메시지를 가져 오려면 텍스트 셀을 편집 할 수 없도록 설정해야합니다.

+0

무효. Growl의 BeepHammer 예제 애플리케이션에는 열과 셀이 모두 편집 가능하도록 설정되어 있으며 두 번 클릭하면 제대로 작동합니다. –

+0

그 예제에 대해서는 모르겠지만'- [NSTableView setDoubleAction :]'에 대한 문서는 "더블 클릭 된 셀을 편집 할 수 있으면이 메시지는 보내지지 않고 셀은 대신 편집됩니다." – JWWalker

+0

당신 말이 맞습니다. 그것은 문서에서 판단하는 것입니다. 그러나이 문서는이 경우 잘못된 것 같습니다. 셀이 편집 가능한 경우에도 작동하는 것처럼 보입니다. – Enchilada