클래스 A (NSDocument 서브 클래스)에 내 문서 데이터가 저장되어 있습니다. 클래스 A는 뷰를 관리하는 클래스 B (NSView 서브 클래스)의 인스턴스를 생성합니다. 클래스 B의 drawRect : 메서드가 호출 될 때마다 클래스 A에서 updateChangeCount :를 호출하여 사용자가 문서를 저장하도록 알 수 있도록합니다.인스턴스 작성자가 수신자 인 메소드 호출
1
A
답변
1
저는 OSX 프로젝트에 완전히 익숙하지 않고 drawRect:
은 NSView
에 대해 정확히 무엇을하는지 알고 싶습니다. Richard J Ross III의 댓글을 볼 수 있습니다. 그러나 그것을 인스턴스 객체의 메소드 호출 한 개체의 일반적인 문제에 :를 ClassA에서,
- (void)someClassBMethodThatNeedsToTriggerSomeClassAMethod {
// stuff
[self.delegate someRequiredMethod];
if ([self.delegate respondsToSelector:@selector(someOptionalMethod)]) {
[self.delegate someOptionalMethod];
}
// stuff
}
이제
ClassB.h
@protocol ClassBDelegate <NSObject>
@reqiured
- (void)someRequiredMethod;
@optional
- (void)someOptionalMethod;
@end
@interface ClassB <NSView>
@property (nonatomic, assign) id<ClassBDelegate> delegate;
// Other stuff you need in your interface
@end
ClassB.m을 이 프로토콜을 준수하는지 확인하십시오.
#import ClassB.h
@interface ClassA <ClassBDelegate>
,그리고 필요한 방법을 구현 :
- (void)someRequiredMethod {
// stuff
NSLog(@"Hello world!");
// stuff
}
을 그리고 당신은 당신의 ClassB
개체를 인스턴스화 할 때, 자신의 대리자를 설정해야합니다 :
classB.delegate = self;
이 편집 : 참고, 나는에 넣어 ClassB
이 필수 방법뿐만 아니라 선택적 방법을 사용할 수있는 방법의 예.
관련 문제
- 1. 정적 메소드 인 것처럼 호출되는 인스턴스 메소드
- 2. init에서 인스턴스 메소드 호출
- 3. 인터페이스의 인스턴스 메소드 직접 호출
- 4. 연관 모델의 인스턴스 메소드 호출
- 5. 인스턴스 생성을 통한 메소드 호출
- 6. 인스턴스 메소드의 루비 호출 클래스 메소드
- 7. Nil 용 호출 ID - 인스턴스 메소드
- 8. 루비의 클래스 메소드에서 인스턴스 메소드 호출
- 9. 하위 클래스의 인스턴스 메소드 호출 생성자
- 10. 서브 인스턴스 내 호출 인스턴스 메소드 mongoose 후크
- 11. Ruby 클래스 인스턴스 메소드 def 초기화 : 인스턴스 또는 클래스 메소드?
- 12. dotnet에서 느린/비효율적 인 메소드 호출 찾기
- 13. 유형이 인터페이스 인 유형별로 일반 메소드 호출
- 14. Python의 정적 및 인스턴스 메소드
- 15. 본질적으로 무작위 인 인스턴스 변수에 의존하는 테스트 메소드
- 16. 백 트레이스에서 수신자 정보 얻기
- 17. 동시에 인스턴스와 클래스 메소드 인 메소드 만들기
- 18. 다른 모듈의 인스턴스 메소드
- 19. 인스턴스 메소드 equals()
- 20. 스레드에 인스턴스 메소드 전달하기
- 21. 파이썬에서 인스턴스 메소드 꾸미기
- 22. 인스턴스 메소드 경고
- 23. group_by의 인스턴스 메소드 사용
- 24. Eclipse - 공용 인스턴스 메소드
- 25. 루비에서 인스턴스 메소드 반복하기?
- 26. 장고 모델에서 인스턴스 메소드 사용하기
- 27. C++ 액세스 위반 인스턴스 메소드
- 28. 수신자 용 인 텐트 필터 가져 오기
- 29. 메소드 호출
- 30. 메소드 호출
DrawRect는 상태를 변경하지 않아야합니다. 이제까지. –
죄송 합니다만, 아주 새로운 소식입니다. 이유를 설명해 주시겠습니까? – PopKernel
-drawRect : 크기 조정, 인쇄, 스크린 샷 등 여러 가지 이유로 호출 될 수 있으므로 그리기 만 처리하면됩니다. –