【发布时间】:2013-01-01 19:04:53
【问题描述】:
我在编写基于 NSDocument 的应用程序时遇到了一个奇怪的问题。当我第一次创建文档并保存它时,一切正常。但是,当我重新打开文档(效果很好)时,主菜单中的“保存”、“另存为”和“恢复为保存”似乎都没有任何效果。方法
- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
永远不会被调用。主菜单“关闭”的行为也很奇怪:它关闭了主文档窗口,但没有关闭任何辅助窗口。同样,只有在打开文档时才会观察到这种不规则行为;新创建文档时,单击主菜单中的“关闭”按预期工作。其他菜单项,“打开”项和我自己的自定义项都可以正常工作。
这是一个在 Snow Leopard 和 Lion 中开发的应用程序,当时没有任何问题。我最近升级到 Mountain Lion,但我不确定问题是从那里开始的,还是我对项目做了什么导致这种行为。当前用于编译应用的 SDK 是 10.7。
任何信息将不胜感激,并在此先感谢,
c.
【问题讨论】:
-
控制台中有什么?
-
我没有放在那里。挖一点我注意到 - (void)saveToURL:(NSURL *)absoluteURL ofType:(NSString *)typeName forSaveOperation:(NSSaveOperationType)saveOperation delegate:(id)delegate didSaveSelector:(SEL)didSaveSelector contextInfo:(void *)没有调用 contextInfo。
-
因此,当加载文档时,我的 NSDocument 子类的 _windowControllers 数组中似乎没有 NSWindowController。我没有使用 -makeWindowControllers 方法,之前没有它也可以正常工作。关于为什么会加载文档但未创建其 NSWindowController 的任何想法?
-
@trip:您应该将该信息添加到您的问题中。听起来这是你真正的问题,所以把它埋在评论中没有任何好处。
标签: macos cocoa nsdocument