응용 프로그램 메뉴의 내 Cocoa 응용 프로그램에 첫 번째 응답자에게 delete:
메시지를 보내는 메뉴 항목 "삭제"가 있습니다. 이제는 키보드 포커스가 NSOutlineView
인데,이 경우 첫 번째 응답자입니다. NSOutlineView
의 서브 클래 싱을하지 않을 경우 delete:
메시지가 전달 될 수있는 방법이 있습니까? NSOutlineViewDelegate
또는 NSOutlineViewDataSource
프로토콜은 이러한 작업을 처리하는 데 흥미로운 것을 정의하지 못합니다.NSResponder 대리인과 같은 것이 있습니까?
답변
첫 번째 응답자는 정확히 다음과 같습니다. 첫 번째 응답자. 관심이없는 메시지는 다음 응답자에게 전달되며 메시지는 응용 프로그램 개체에 도달 할 때까지 차례대로 전달할 수 있습니다.
이 메시지를 처리하려면 응답기 체인에 있어야합니다. 윈도우 컨트롤러는 좋은 방법입니다. 윈도우의 다음 응답자가됩니다.
아키텍처 관점에서, 창 컨트롤러가 테이블/개요보기에 로컬 인 "복사", "붙여 넣기"및 "삭제"이벤트를 처리하는 것이 지저분 해 보이지 않습니까? 그 방법은 뷰가 바인딩하는 배열/트리 컨트롤러 나 뷰의 위임자가 처리하는 것이 가장 좋은 것으로 보이지만 NSArrayController와 NSTreeController는 NSResponders가 아니며 응답 체인에있을 수 없습니다. – Tony
커스텀'NSViewController' 객체를 사용하여 각각의 개별 뷰를 관리하고 리스폰 더 체인에 뷰 컨트롤러를 삽입 할 수 있습니다. 보기 컨트롤러는 복사 및 붙여 넣기 등을 처리 할 수 있습니다. –
@ 토니 : 윈도우 컨트롤러가 데이터를 소유 한 객체 (예 : 문서)를 알고 있거나 아는 경우 아닙니다. 창 컨트롤러는 뷰와 창 및 모델 컨트롤러 사이의 중간에 거의 존재합니다. 뷰가 잘라내 기, 복사, 붙여 넣기 및 삭제 (바인딩 또는 데이터 소스 메시지를 통해)를 처리하는 것이 가장 좋겠지 만 추가하는 하위 클래스를 만들지 않는 한보기가 좋습니다. –
- 1. 기존 NSView의 NSResponder 바꾸기
- 2. 대리인과 함께 ASP.Net의 옵저버
- 3. NSBottomBar와 같은 것이 있습니까?
- 4. Server.FileNameEncode와 같은 것이 있습니까?
- 5. CURLOPT_CONNECTIONTIMEOUT과 같은 것이 있습니까?
- 6. NSView - 훑어보기 및 NSResponder
- 7. ActionMailer에 필터와 같은 것이 있습니까?
- 8. JMeter의 thread.join과 같은 것이 있습니까?
- 9. MATLAB에서 'whereis'와 같은 것이 있습니까?
- 10. jQuery에는 isClicked와 같은 것이 있습니까?
- 11. Verilog에는 __LINE__과 같은 것이 있습니까?
- 12. 안드로이드에 NSDictionary 같은 것이 있습니까?
- 13. PHP에서 Chronic과 같은 것이 있습니까?
- 14. 기능 모델과 같은 것이 있습니까?
- 15. 백업 크롤러와 같은 것이 있습니까?
- 16. Ruby에는 JavaDoc과 같은 것이 있습니까?
- 17. JSF에서 ServletContextListener와 같은 것이 있습니까?
- 18. 웹용 TextMate 같은 것이 있습니까?
- 19. XML 2.0과 같은 것이 있습니까?
- 20. Linux의 Shark와 같은 것이 있습니까?
- 21. 안드로이드에 web.config와 같은 것이 있습니까?
- 22. Jsp 다이어그램과 같은 것이 있습니까?
- 23. Readability.js와 같은 Python을위한 것이 있습니까?
- 24. 배경 마진 같은 것이 있습니까?
- 25. 단락 곱셈과 같은 것이 있습니까?
- 26. , 레일즈에 rspec과 같은 것이 있습니까?
- 27. 매트릭스 배열과 같은 것이 있습니까?
- 28. 루아에 포인터와 같은 것이 있습니까?
- 29. C#, 이벤트는 대리인과 어떻게 다른가요?
- 30. 앱 대리인과 VC 간 통신
서브 클래 싱에 대한 귀하의 반대 의견은 무엇입니까? 간단하고 원하는 것을 얻을 수 있습니다. –
확실히 결과를 얻지 만 그 접착제 요소를 처리하는 것이보기 대신 컨트롤러의 역할 인 것 같습니다. 또한 Cocoa는 위임 패턴을 강력하게지지하기 때문에 아마도 이러한 작업을 처리 할 수있는 기본 제공 대리인이 있다고 생각했습니다. – Tony