ページ

2008年3月8日土曜日

画面キャプチャその8 - タイマー取り込み(2)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

タイマー取り込みの続き。カウントダウン中に操作ができるようにする。画面全体を暗くするのをやめて、カウントダウンの数字以外は透明にするようにした。



左上の白い数字がカウントダウン。

ソース:FullScreenSample-8.zip


画面全体を黒くするコードをコメントアウトする。

MyView.m

- (void)drawRect:(NSRect)rect {
// [[NSColor colorWithDeviceRed:0.0 green:0.0 blue:0.0 alpha:0.75] set];
// NSRectFill(rect);
  :


するとカウントダウンの数字以外は透明、すなわち普通にデスクトップが見えるようになる。これでカウントダウン中も通常通り他のアプリケーションの操作が可能になり、カウント=0でその時点でのスクリーンショットが保存される。

以前 NSWindow#setIgnoresMouseEvents:NO を使っていたがこれはコメントアウトしておく。そうしないとビューとウィンドウが透明であっても、それより下のウィンドウが操作できない。


- - - -
さて今回も簡単に行ったようだ。

と思った矢先、カウントダウン中にメニューを操作するとカウントダウンが止まってしまう。メニュー操作中はどうも NSTimerが発火しないようだ。