Mar*_*ell 1 macos icalendar cocoa modalpopups
我想在用户选择NSTableView类似于在iCal中选择事件的单元格时打开覆盖窗口(弹出窗口).在iCal中选择事件会显示一个用于编辑事件的窗口,但是可以通过平滑地设置打开的窗口并在基础日历中添加指向偶数的箭头来实现.有谁知道这里使用的是什么?这是一堆隐藏/自定义API还是可供公众使用?
编辑器窗格看起来是一个带有自定义视图的自定义无边框透明窗口(视图定义了形状,因此定义了它所投射的阴影).在这里了解更多.你甚至可以使用MAAttachedWindow.
关于动画,它就像要求窗口的动画师为帧和alpha值设置动画一样简单(将它们组合在一起).您可能希望首先直接在其"开始位置"设置所有内容(即,当窗口在屏幕外时,将其alpha设置为零,并将其框架设置为较小的版本,以便它"放大"la iCal ),然后将其放在屏幕上并启动分组动画:
[NSAnimationContext beginGrouping];
[[window animator] setFrame:someNewSlightlyLargerFrame];
[[window animator] setAlphaValue:1.0];
[NSAnimationContext endGrouping];
Run Code Online (Sandbox Code Playgroud)
分组结束后,动画将开始(异步)并继续执行代码.需要考虑的是首先让所有东西"上演"(包括确保你的窗口的子视图已经预先更新,所以它们不会在动画中间改变......除非你想要它们).
因此,您需要了解的两个独立技术是自定义窗口和基本Cocoa动画.
| 归档时间: |
|
| 查看次数: |
4300 次 |
| 最近记录: |