1

NSTableViewiCal でイベントを選択するのと同様に、ユーザーがセルを選択したときにオーバーレイ ウィンドウ (ポップアップ ウィンドウ) を開きたいと考えています。iCal でイベントを選択すると、イベントを編集するためのウィンドウが表示されますが、ウィンドウがスムーズに開くようにアニメーション化し、基になるカレンダーのイベントを指す矢印を追加することで、イベントを編集できます。ここで何が使われているか知っている人はいますか?これは隠し API やカスタム API の束ですか、それとも一般に公開されていますか?

4

3 に答える 3

6

エディター ペインは、カスタム ビューを備えたカスタムの枠のない透明なウィンドウのように見えます (ビューは形状を定義し、したがって、ビューがキャストする影を定義します)。詳細はこちら. MAAttachedWindowを使用することもできます。

アニメーションに関しては、ウィンドウのアニメーターにフレームとアルファ値をアニメーション化する (それらをグループ化する) ように依頼するのと同じくらい簡単です。おそらく、すべてを最初に「開始位置」に直接設定することをお勧めします (つまり、ウィンドウが画面外にある間、アルファをゼロに設定し、フレームを小さいバージョンに設定して、iCal で「ズームイン」します)。 )、それを画面に表示して、グループ化されたアニメーションを開始します。

[NSAnimationContext beginGrouping];
[[window animator] setFrame:someNewSlightlyLargerFrame];
[[window animator] setAlphaValue:1.0];
[NSAnimationContext endGrouping];

グループ化が終了すると、アニメーションが (非同期で) 開始され、コードの実行が続行されます。考えるべきことは、最初にすべてを「ステージング」することです(ウィンドウのサブビューが事前に更新されていることを確認して、アニメーションの途中で変更しないようにすることを含みます...必要でない限り)。

したがって、理解する必要がある 2 つの別個の手法は、カスタム ウィンドウと基本的な Cocoa アニメーションです。

于 2009-11-12T17:21:12.907 に答える
4

OSX 10.7以降を使用している場合、NSPopover探している仕事をします.

于 2012-09-30T22:22:26.957 に答える
1

iCal アプリの下部にあるリストからでも選択することについて話しているのですか?

正確に何を指しているのかわかりませんが、タイムスパン内で変換をアニメーション化するための API があります。

他の Apple のアプリケーションを見ると、Apple の開発者は、他の誰でも利用できる同じ API を利用しています (ほとんどの場合、私はそう思います)。カスタマイズできるものはたくさんあり、Apple はデザインの観点から正しく見えるまで、必要なものは何でもカスタマイズします...

于 2009-11-12T03:26:40.913 に答える