2/20/2010

QTMovieView delegate hidden method

QTMovieView has delegate that follows

- (CIImage *)view:(QTMovieView *)view willDisplayImage:(CIImage *)image;

This delegate method is not listed in current newly SDK's document.
But it's defined in QTMovieView.h in QTKit.framework.
It works properly.
On default, this method has name conflict with QTCaptureView delegate

- (CIImage *)view:(QTCaptureView *)view willDisplayImage:(CIImage *)image;

Xcode will show warning about conflict.
You can implement QTMovieView delegate method as follow

- (CIImage *)view:(id)view willDisplayImage:(CIImage *)image {

if ([view isKindOfClass:[QTMovieView class]]) {
  //your code
  return image;
  }

return image;
}

QTMovieView にはドキュメントに載ってないけど header に定義されてる delegateメソッドがある。
ただ QTMovieCaptureView の delegateメソッド名と被っているので、Xcode でビルドすると警告が出る。クラス名の部分を id なんかにしてやって、メソッド内でメソッドの送り主が意図するクラスかどうかをチェックして必要に応じて処理するといいんじゃないかという話。

spec OS 10.6.2, Xcode 3.2.1, 3.2.2

No comments:

Post a Comment