我有一个实现NSOpenSavePanelDelegate
协议的类,并且与NSOpenPanel相关联。
我在NSLog()
方法中添加了- (void)panelSelectionDidChange:(id)sender
,并注意到以下内容:
当我第一次选择文件时,panelSelectionDidChange
被调用,并且检查[sender URL]
我得到所选文件的URL,但是当我选择另一个文件时,panelSelectionDidChange
被调用两次,第一次[sender URL]
拥有最后一个网址,第二次调用[sender URL]
时,网址为新选择的文件。
但是,如果我使用键盘箭头选择文件而不是点击它panelSelectionDidChange
只使用正确的URL调用一次。
这是正常行为还是我做错了什么?
答案 0 :(得分:0)
我也遇到了这个问题,我注意到这只发生在打开面板处于浏览器模式时,而不是列表,图标或预览(不确定这些是官方名称)。用户可以使用面板左上角的按钮更改此设置。
我相信第一次通话是在您第一次选择项目时发生的,而第二次通话是在预览显示在浏览器右侧时发生的。
不完全是我所知道的解决方案,但可能这些信息会有所帮助。