タイマー取り込みの続き。カウントダウン中に操作ができるようにする。画面全体を暗くするのをやめて、カウントダウンの数字以外は透明にするようにした。
左上の白い数字がカウントダウン。
ソース: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が発火しないようだ。