0

我正在更新 10.6 后的一些旧代码。

该代码包含一个保存时间方法,其中包含大约 60 行代码,并且从大约 1/2 十几个地方调用。代码使用了 beginSheetForDirectory,从 10.7 开始不再支持。

我很困惑如何将以前的基于 @selector 的解决方案转换为新的 ^(NSInteger) 表单。我能找到的所有示例都使用内联块,我很困惑如何使该调用成为单独的方法。

save 方法有这个 sig,内部不使用 x:

- (void)savePanelDidEnd:(NSOpenPanel *)sheet 
        returnCode:(int)returnCode 
       contextInfo:(void *)x
4

1 回答 1

0

在另一个线程中找到了这个。诀窍是在没有返回处理程序的情况下调用 beginSheetForDirectory,然后立即在其上调用 runModal。当 runModal 返回时,正常处理对话框。

于 2013-03-15T17:17:22.057 回答