问题标签 [nsdocument]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 以编程方式重命名 NSDocument 文件时防止警告
我的应用程序允许用户重命名当前打开的文档。这是微不足道的,并且工作正常,有一个我无法弄清楚的非常烦人的错误。当文件被重命名时,AppKit(友好地)会在用户下次尝试保存文档时警告用户。用户说“OK”,一切照常进行。当应用程序外部的某些东西更改了文档时,这是有道理的,但当它实际上是由文档本身完成时则不然。
代码是这样的:
有人会认为在文档上明确设置新的 URL 和修改日期就足够了,但遗憾的是事实并非如此。Cocoa 仍然会产生警告。
我尝试更改顺序(在文档上设置新 URL,然后重命名文件),但这无济于事。
我还尝试了用户在 CocoaDev 上的旧帖子上建议的修复:
然而,即使这样也不会停止警告,我猜必须有一种正确的方法来使用文档化的 API 来做到这一点。当用户单击项目树上的文件并将其重命名为其他内容时,Xcode 如何处理事情。它不会警告用户重命名,因为用户实际上执行了重命名。
我需要做什么?
cocoa - NSURL → NSImage → NSImageView
我正在玩 AppKit 和 NSDocument,但我不知道为什么这不起作用?:
我刚刚写了这个,图像不是零,但从不加载任何图像,它的大小总是为零。这是我必须实施的将文件读入文档的正确方法吗?我需要路径,而不是数据(NSData),因为我打算使用其他库来读取其他文件。
现在我正在尝试阅读 PNG、JPG,但都没有。;(
提前致谢。
objective-c - 奇怪的 loadNibNamed 行为
我有一个基于文档的 Cocoa 应用程序。[NSBundle loadNibNamed:@"inspectorNIB" owner:self]
在运行时,我通过调用(在哪里self
)从包中加载一个额外的 nib NSDocument
。
奇怪的是,当加载包成功时,它再次调用NSDocument
'awakeFromNib
方法,导致不必要的第二次初始化。这是预期的行为吗?我该如何压制它?
objective-c - 文档“无标题”无法保存为“无标题”
我正在尝试使用此 Apple 演练开发基于文档的 Mac 应用程序,但在保存文件时遇到问题(最后一步)。尝试保存文件后出现的错误是:无法将文档“未命名”保存为“-我正在尝试使用新文件名-”
我用谷歌搜索并没有找到这个错误的任何结果。我重新检查了代码,对教程来说一切似乎都很可靠。我想知道是否有人对这里可能出现的问题有任何直觉。
我的主要课程的代码是:
头文件:
iphone - 我可以在 iphone 的文档目录中的 2 个文件夹中有一个同名的文件吗?
我检查并了解我们可以在文档目录中创建不同名称的文件夹。
我怀疑我创建了两个文件夹,folder1 和 folder2。是否可以在每个目录中都有一个名为 rock.pdf 的文件?这两个文件将不同,但名称相同。
cocoa - 使用 QTKit 编辑后如何正确保存 QTMovie?
我正在使用 NSDocument 架构的应用程序中对 QTMovie 进行少量编辑(例如添加轨道,如下所示)。编辑后,我想保存到原始文件。但是,我不断收到“文件正忙”错误。我认为这是由于我在处理文件时的一些疏忽,或者我使用 NSDocument 的方式失败。任何提示都会有所帮助!这是(一些)相关代码:
我必须先在我的 NSDocument 中发布电影吗?这样做的“正确”方法是什么?请记住,我不一定完成此文档,我不会关闭它。我刚刚完成了这个操作,我希望磁盘上的文件能够反映我的更改。我很想使用 [movie updateMovieFile],但该调用似乎并没有使电影变平。我不希望我的文件中有任何外部引用。
macos - 从另一个类访问 MyDocument 中的 IB 实例化 NSBox?
我从 Hillegass 的书 Cocoa Programming for MAC OS X 中的视图交换代码开始。该代码使用 MyDocument.nib 中的弹出菜单来使用 MyDocument.m 中的 displayViewController 交换 ViewControllers,部分如下所示。我正在尝试通过从生成表的 ViewController 调用 MyDocument.m 中的 displayViewController 来使用 ViewController 中的表行来交换 ViewController:
我遇到的问题是,当我从另一个 ViewController 调用 displayViewController 时,我需要在 MyDocument.nib 中沿 Interface Builder 实例化 NSBox 发送,以便可以在 MyDocument.m 中的 NSBox 内交换视图。为此,我需要能够从另一个 ViewController 访问 MyDocument.nib 中的 Interface Builder 实例化的 NSBox。
有谁知道如何从另一个 ViewController 访问 MyDocument.nib 中的 Interface Builder 实例化 NSBox?
编辑:
我已经取得了一些进展。视图层次结构是:
我已经能够使用以下内容获得顶级 Window 和当前 ContentView:
但我仍然没有弄清楚如何获取 ContentView 中的 NSBox。我尝试了以下方法,但没有奏效:
有人有想法吗?
cocoa - 我应该为此使用 NSViewController 吗?
我希望我的应用程序有一个文档,但有多个屏幕,而不需要使用多个窗口。实现这一目标的最佳方法是什么?我正在考虑使用单个 NSPersistentDocument,该文档将从显示一组控件的 NSViewController 开始,然后将该视图交换为另一个 NSViewController。
我的问题是:这是正确使用 NSViewControllers 吗?甚至可以做到吗?如果两者的答案都是肯定的,我如何在文档中将视图交换为另一个视图?
objective-c - Cocoa/Obj-C - 将文件拖到应用程序图标时打开文件
目前我的应用程序界面上有一个按钮可以打开文件,这是我的打开代码:
在我的 app.h 中:
在我的 app.m 中:
如何编辑我的代码以允许使用应用程序图标拖放打开?
注意:我编辑了 .plist 文件并为“xml”添加了一行,但它改变了任何内容,当我的文件被拖放到图标上时出现错误。
注 2:我将“文件 - > 打开...”链接到 selectFile:这指的是我的代码
注 3:我的应用程序不是基于文档的应用程序
谢谢你的帮助!
米斯基亚
core-data - 未设置核心数据脏标志
我有一个基于核心数据文档的可可应用程序,除了一个稍微奇怪的问题外,它运行良好。
出于某种原因,如果我对我的任何字段进行更改,菜单/窗口似乎无法识别它 - 即。红色的关闭按钮没有得到黑色的“脏”指示器,并且文件/保存菜单项未启用。但是,如果我尝试关闭应用程序(通过 command-Q),我确实会收到弹出窗口询问我是否要保存我的更改。
似乎正在设置文档的脏标志,但窗口/菜单项没有对其做出反应。我很好奇我可能会去哪里看看为什么会出现这种情况。我怀疑这可能与我的窗口有关,不知道我的 ManagedObjectContext ...
唯一稍微不典型的行为是我的文档的 makeWindowControllers 方法已被覆盖,我正在使用对我的文档的 [self addWindowController:xxx] 方法的调用来添加我的窗口控制器。我的窗口控制器是 NSWindowController 的子类,因此我必须将自己的实例变量添加到每个窗口控制器以保存 ManagedObjectContext,但我怀疑这没有传递给窗口/菜单。不知道这里的正常模式是什么......
无论如何,任何想法将不胜感激。谢谢