我正在尝试确定NSOpenPanel在实际关闭之前何时关闭。我需要这样做,所以我可以覆盖另一个窗口,并在其上面打开面板的屏幕截图进行动画制作。不幸的是,您似乎能够访问的所有通知似乎都在窗口已经关闭后触发。在开始转换之前,这会导致一种不和谐的口吃。
我试过了:
- 在开放式面板上使用NSWindow委托方法(显然,NSWindow委托方法都不起作用)
- 监控面板:userEnteredFilename:确认:(未调用)
- 显示带回调的对话框(面板消失后发生回调)
答案 0 :(得分:1)
您应该将控制器注册为开放面板的委托,然后实施-panel:isValidFilename:
委托方法。将在打开的对话框关闭之前调用此方法。
如果您只是想要通知,则应该从方法返回YES
。返回NO
可以阻止打开对话框。
答案 1 :(得分:0)
另一种处理此问题的方法是查看NSOpenPanel的“取消”按钮的子视图,并将自己作为目标/操作进行交换。这就是我最终做的事情。