코코아 - 왜 drawRect:가 호출되는지 모르시나요?
PHP中文网
PHP中文网 2017-05-02 09:22:19
0
1
431

다른 사람의 코드를 공부하며 상태 표시줄 애플리케이션을 작성하려고 준비 중입니다.
이 코드는 AppDelegate

에 나타납니다. 으아아아

이 코드는 observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 함수에서 호출됩니다. 상태 변수 status가 변경된 후 setStatusImageAndToolTip 함수를 호출합니다.
저는 내 프로젝트에서 상태 변경을 사용하지 않기 때문에 이 코드 부분을 작성하지 않았습니다. 단, 런타임 중에는 drawRect: 함수가 실행되지 않으므로 상태 표시줄에 아이콘이 표시되지 않습니다.
코드를 다시 보니 statusItem.length에 값이 할당될 때 drawRect가 호출되는 것을 발견했습니다. 이유를 모르시나요?

PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(1)
阿神

공식 문서:

뷰의 형상만 변경하면 일반적으로 뷰는
다시 생성되지 않습니다.

drawRect의 호출 시점은 시스템에 의해 결정됩니다(처음 표시될 때 등). 이는 시스템에서 drawRect를 호출하지 않는 경우도 있음을 의미합니다.
다음 다시 그리기 주기에서 뷰를 업데이트하기 위해 drawRect를 강제로 호출하려면 다음 메서드를 사용하세요

  • setNeedsDisplay

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿