뷰 (NSButton
)가 포함 된 툴바 아이템이 있고 뷰의 타겟이 nil
으로 설정되어 있기 때문에 액션을 트리거 할 때 리스폰 더 체인을 검색 할 것입니다. 그래도 첫 번째 응답자에 대해 유효성을 검사하는 방법을 시도하는 데 문제가 있습니다.FirstResponder에 대해 View로 NSToolbarItem 확인하기
NSToolbarItem을 서브 클래 싱하고 -(void)validate
을 구현했습니다. 내가 찾은 참조는 [[[self view] window] firstResponder]
을 호출 한 다음 응답자 체인이 NSToolbarItemValidation
또는 NSUserInterfaceValidations
을 구현하고 적절한 유효성 검사 메소드를 호출하는지 확인한 다음 첫 번째 응답자를 가져올 수 있어야한다고 말합니다.
그러나 [[self view] window]
을 호출하면 창으로 nil
이 반환되므로 첫 번째 응답자를 검색 할 수 없습니다.
차이가 있는지 확실하지 않지만 코드에 쓰는 대신 XIB에서 도구 모음을 만들고 있습니다.
NSToolbar.h에서 찾고있는 ivar가 포함 된 창을 참조하므로 [[[self toolbar] valueForKey:@"window"] firstResponder]
을 호출하여 첫 번째 응답자를 찾을 수 있습니다.하지만 이는 약간의 해킹이며 문서화 된/stabler를 사용하는 것을 선호합니다.
뷰가 포함 된 NSToolbarItem 인스턴스의 경우 -validate 구현을 서브 클래스 화하고 제공해야합니다. 목표가 첫 번째 응답자 (즉,'nil') 일 때 그 메소드를 작성하는 방법을 알아 내려고하고 있습니다. http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Toolbars/Tasks/ValidatingTBItems.html#//apple_ref/doc/uid/20000753-BAJGFHDD – Jablair