我听说过很多像CouchDB这样的面向文档的数据存储.我理解BigTable的用途,比如Cassandra等商店.在阅读完这个问题之后,我想知道使用文档存储的条件是什么?
当我显示这样的NSAlert时,我立刻得到了回复:
int response;
NSAlert *alert = [NSAlert alertWithMessageText:... ...];
response = [alert runModal];
Run Code Online (Sandbox Code Playgroud)
问题是这是应用程序模式,我的应用程序是基于文档的.我使用工作表在当前文档的窗口中显示警报,如下所示:
int response;
NSAlert *alert = [NSAlert alertWithMessageText:... ...];
[alert beginSheetModalForWindow:aWindow
modalDelegate:self
didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:)
contextInfo:&response];
//elsewhere
- (void) alertDidEnd:(NSAlert *) alert returnCode:(int) returnCode contextInfo:(int *) contextInfo
{
*contextInfo = returnCode;
}
Run Code Online (Sandbox Code Playgroud)
唯一的问题是beginSheetModalForWindow:直接返回,所以我无法可靠地询问用户问题并等待回复.如果我可以将任务分成两个区域,那么这不会是一件大事,但我不能.
我有一个循环来处理大约40个不同的对象(在树中).如果一个对象出现故障,我希望警报显示并询问用户是继续还是中止(继续在当前分支处理),但由于我的应用程序是基于文档的,因此Apple人机界面指南要求在警报为时使用工作表特定于文件.
如何显示警报表并等待响应?
我已经制作了一个自定义的NSView并实现了该keyDown:方法.但是,当我按下键时,从不调用该方法.我必须注册接收这些活动吗?fyi,我正在创建一个基于文档的应用程序,并且可以在任何地方处理此代码(不必在此视图中).在基于文档的应用程序中执行此操作的最佳位置是什么,以便事件将在整个应用程序中发生?
从iOS 11开始,每次使用UIDocumentAPI 创建新文档时都会遇到以下错误:
[错误]无法获取项目/var/mobile/Containers/Data/Application/XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX/Documents/myDoc-XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX.myFile(n)的属性值.
错误:错误域= NSFileProviderInternalErrorDomain代码= 1
"不允许读者访问该URL."
UserInfo = {NSLocalizedDescription =不允许读者访问该URL.}
不同于类似的问题(1,2,3上SO)在此,我没有使用UIDocumentBrowserViewController.我只是创建一个UIDocument并自己调用save()该Documents目录.我发现的最接近的问题用途UIManagedDocument.但是,就我而言,尽管出现错误消息,仍然可以成功创建和写入文件.
这是我保存例程的要点:
@IBAction func createDoc(_ sender: Any) {
let uuid = UUID().uuidString
let doc = Document(baseName: "myDoc-\(uuid)")
doc.save(to: doc.fileURL, for: .forCreating) { (completed) in
if (completed) {
doc.close(completionHandler: nil)
self.verifyNumberOfFiles()
}
}
}
Run Code Online (Sandbox Code Playgroud)
UIDocument为了简化这个问题,我的子类也几乎是空白的:
class Document: UIDocument {
let fileExtension = "myFile"
override …Run Code Online (Sandbox Code Playgroud) 我需要在Raven DB中删除整个文档集.逐个删除(文件)不是明智的选择.我有办法轻松地做到这一点吗?
我正在尝试为我的多平台(iOS 14 - macOS Big Sur)应用程序创建自定义文档图标。
因此,对于 macOS,这非常简单,我可以附加一个旧图标,或者更好的是,提供背景、图像和文本的组合来合成文档图标,如macOS 文档图标人机界面指南中所述。
因此,在 Info.plist 中,UTExportedTypeDeclarations将包含UTTypeIcons如下所示的键:
<key>UTTypeIcons</key>
<dict>
<key>UTTypeIconBackgroundName</key>
<string>Icon Fill</string>
<key>UTTypeIconBadgeName</key>
<string>Icon Image</string>
<key>UTTypeIconText</key>
<string>Dapka</string>
</dict>
Run Code Online (Sandbox Code Playgroud)
现在,真正的挑战在于 iOS 文档图标。首先,没有更新的文档。其次,我无法像在 macOS 上那样做到这一点。在这里,我应该只提供一张图像,所以我将其作为 PNG 上传到 Resources 文件夹中,然后UTExportedTypeDeclarations在 Info.plist 中修改如下:
<key>UTTypeIconFiles</key>
<array>
<string>Document Icon</string>
</array>
Run Code Online (Sandbox Code Playgroud)
但是,该图标显示不正确,它显示为带有白色背景的居中图像,并且没有文本。
有任何想法吗?
我有一个基于文档的应用程序,我已经分类NSDocument并提供了所需的方法,但我的文档需要一些广泛的清理(需要运行外部任务等).把它放在哪里最好的地方?我尝试过几种不同的方法,例如:
closeclose:canCloseDocumentWithDelegate:shouldCloseSelector:contextInfodealloc如果我把它放入dealloc,有时它会被调用,有时它不会被调用(按下Command + Q似乎绕过我的文件的释放),但是必须在没有失败的情况下调用此代码(除非程序意外终止).
我想通过选项卡式界面编写一个可能在一个窗口中有多个文档的应用程序.我应该避免使用NSDocument架构(基于Cocoa文档的应用程序模板)吗?据我所知,它每个文档只支持一个或多个窗口,反之则不然.
我已经和这个问题争论了一段时间,并且已经在NSDocument架构上构建了我的大部分应用程序但是我无法想出一个将多个文档与单个窗口相关联的好方法.
编辑:除了基本的文档窗口,我想要项目文档窗口.在这种复杂程度上,还是值得攻击NSDocument架构吗?Apple是否使用NSDocument架构编写Xcode(以这种方式工作)?
我正在制作一个新的Mac OS X应用程序.(不是iPhone应用程序)这是基于文档的应用程序.
它在启动时自动显示一个新的"无标题"文档实例.我怎么能阻止这种行为?我希望我的应用程序在启动时不显示任何窗口.
我试图理解Cocoa中的东西是如何工作的,但我正在努力解决一件事.我看到http://cocoawithlove.com/2010/09/minimalist-cocoa-programming.html和http://casperbhansen.wordpress.com/2010/08/15/dev-tip-nibless-development/我想我有点了解.
现在,我想对"基于文档的应用程序"做同样的事情.请问,有没有人知道类似上面的教程或示例?或者,我需要做些什么来使它工作?我想我需要创建NSDocumentController- 但它与NSApplication有什么关系?我NSDocument从那里创造?坦率地说,我有点失落......