Xamarin.MacのAVPlayerViewでオーバーレイ表示する
AVPlayerViewには「ContentOverlayViewプロパティ」というズバリなものがあるので、NSViewの派生クラスをそこにAddSubviewしてやればよい。
なお、Interface Builderで貼り付けたAVPlayerViewのContentOverlayViewプロパティが有効になるのはViewControllerのViewDidAppear以降であり、AwakeFromNibやViewDidLoadの段階ではnullなので注意すること。
public override void ViewDidAppear()
{
// NSView派生クラスを作って
var overlay = new NSView() {
// AvPlayerViewと同じサイズにする
Frame = avPlayerView.ContentOverlayView.Frame,
// 縦横ともにオートリサイズ
AutoresizingMask = NSViewResizingMask.WidthSizable | NSViewResizingMask.HeightSizable,
};
// ContentOverlayViewに突っ込む
avPlayerView.ContentOverlayView.AddSubview(overlay);
}