App Extension式のスクリーンセーバを、とりあえずサクっと作ってみようかとおもったんですわ。結論は断念。スクリーンセーバとしては動かせたんですが、問題は設定の『シート』ね。
従来のスクリーンセーバのシートを閉じるにはconfigureSheet
の解説にあるようにendSheet:
を使いました。でも設定は『ビュー』で用意するから、シートが不明なんですよね。試しにendSheet:self.view.window
を唱えても閉じないし。self.view.window.frameのサイズはself.view.frameと同じで、勝手に追加されたOKボタンの領域はどーなっちゃったよ?って感じ。self.view.windowに親/子のウインドウも無さそうだし、隠蔽されてる? おとなしく、勝手追加のOKボタンを利用するしかなさげ。まぁそれはイイんですが...。
『OKボタン』の他にも、Apple純正ならそんなこと無いのになー、とゆー制約がありまして。シートの横幅が470(かな?)までしか表示されないの。最初の表示は問題無いのよ。でも二度目以降、一旦シートを閉じてまた表示させるとシートの左側470までしか表示されない。なんだかなー。まぁこれもタブなんかで項目を分割させればイイんですが...。
そして致命的な点。テキストフィールドにキー入力出来ない!っての。キー入力のイベントは、勝手追加のOKボタンのreturn(enter)キー判定に奪われちゃうのよ。makeKeyWindow
の呪文でフォーカスリングは描画されるものの、ダメ。becomeFirstResponder
を唱えても、ダメ。いえね、ナニかの拍子に入力出来ることも極々稀にあったりするんでよ。でもどーすればイケるんだかサッパリわからんちん。わからんちん...。
てなわけで、App Extension式のスクリーンセーバは保留ってことで。機会があればまた調べ...。ぐぬぬ。