簡體   English   中英

與iCal相似的可可彈出式窗口

[英]Cocoa Pop-up Window Similar to iCal

當用戶在我的NSTableView選擇一個單元格類似於在iCal中選擇一個事件時,我想打開一個覆蓋窗口(彈出窗口)。 在iCal中選擇事件會顯示一個窗口來編輯事件,但是可以通過平滑地使窗口打開動畫並在底層日歷中添加指向偶數的箭頭來進行編輯。 有人知道這里使用了什么嗎? 這是一堆隱藏的/自定義的API還是可供公眾使用?

編輯器窗格看起來是帶有自定義視圖的自定義無邊界透明窗口(該視圖定義了形狀並因此定義了其投射的陰影)。 在這里了解更多。 您甚至可以使用MAAttachedWindow

關於動畫,這就像要求窗口的動畫師為幀和alpha值設置動畫(將它們分組在一起)一樣簡單。 您可能需要先將所有內容直接設置在其“開始位置”(即,當窗口不在屏幕上時,將其alpha設置為零,並將其框架設置為一些較小的版本,以便“放大” la iCal ),然后將其放到屏幕上並開始分組動畫:

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

分組結束后,動畫將開始(異步),並且您的代碼將繼續執行。 要考慮的是首先使所有內容“上演”(包括確保窗口的子視圖已經預先更新,因此它們不會在動畫的中間發生變化……除非您希望這樣做)。

因此,您需要了解的兩種獨立技術是自定義窗口和基本的可可動畫。

如果您使用的是OSX 10.7及更高版本,則NSPopover將完成您要尋找的工作。

您是在談論甚至從iCal應用程序底部的列表中進行選擇嗎?

不知道您確切指的是什么,但是有一個用於在時間跨度內對轉換進行動畫處理的api。

看看其他Apple的應用程序,Apple的開發人員會使用其他任何人都可以使用的相同api(我猜大部分是這樣)。 有很多東西可以自定義,Apple可以自定義所需的一切,直到從設計的角度看起來很合適為止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM