2009-09-02 3 views
1

라이브러리 패널을 클릭하거나 드래그하려면 라이브러리 패널에 현재 패널이없는 경우에도 한 번 클릭하면됩니다. 초점.패널의 첫 번째 클릭에 대한 NSTableView 응답

비슷한 행동을하는 패널을 만들려고합니다.

NSTableView가 클릭을 수락 할 수있는 간단한 방법이 있습니까? 창에 포커스가 없어도됩니다.

감사합니다.

답변

1

좋아, 대답을 찾았습니다. awakeFromNib 내부에서 다음과 같이 호출합니다. [self setBecomesKeyOnlyIfNeeded : YES];

트릭을 수행하는 것으로 보입니다. Panel이 실제로 한 번의 클릭으로 동시에 포커스를 얻는 Interface Builder와는 조금 다르지만,이 방법은 내가 찾고있는 것입니다.

+0

다행이었습니다. 아래의 내 대답은 클릭과 동시에 초점을 맞추고 NSPanels뿐 아니라 모든보기에서 작동합니다. 그러나 이것이 당신의 필요를 충족 시키면, 분명히 훨씬 간단 해지고 현재의 keyWindow에서 키보드 포커스를 훔치지 않습니다 (그것은 필요에 따라 좋거나 나쁨). –

+0

XIB 파일이나 코드에서 다른 것을 설정해야합니까? 이 NSCollectionView 함께 작동하도록 얻으려고 오전, 그리고 지금까지 완전히 실패합니다. –

+0

오랫동안 답변을 드려 죄송합니다. 방금이 댓글에 주목했습니다. "setBecomesKeyOnlyIfNeeded"를 시도 했습니까? 작동하지 않았습니까? – chaimp

1

보기가 -acceptsFirstMouse:을 덮어 씁니다. 예를 반환하려면 (또는 반환 할 이벤트를 결정하기 위해 전달 된 이벤트를 평가하십시오.) 당연히 서브 클래스 NSTableView을해야 할 것입니다.

+0

필자는 그 일을 할 필요없이 결국 테이블이있는 패널의 "becomeKeyOnlyIfNeeded"속성을 설정했습니다. 그러나 응답 해 주셔서 감사합니다. – chaimp