다른 사람의 코드를 공부하며 상태 표시줄 애플리케이션을 작성하려고 준비 중입니다.
이 코드는 AppDelegate
이 코드는 observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
함수에서 호출됩니다. 상태 변수 status
가 변경된 후 setStatusImageAndToolTip
함수를 호출합니다.
저는 내 프로젝트에서 상태 변경을 사용하지 않기 때문에 이 코드 부분을 작성하지 않았습니다. 단, 런타임 중에는 drawRect:
함수가 실행되지 않으므로 상태 표시줄에 아이콘이 표시되지 않습니다.
코드를 다시 보니 statusItem.length
에 값이 할당될 때 drawRect가 호출되는 것을 발견했습니다. 이유를 모르시나요?
공식 문서:
drawRect의 호출 시점은 시스템에 의해 결정됩니다(처음 표시될 때 등). 이는 시스템에서 drawRect를 호출하지 않는 경우도 있음을 의미합니다.
다음 다시 그리기 주기에서 뷰를 업데이트하기 위해 drawRect를 강제로 호출하려면 다음 메서드를 사용하세요