问题标签 [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.
cocoa - 如何从文档笔尖访问主笔尖中的项目?
我正在制作一个基于 NSDocument 的应用程序,其中有一个检查器窗口。这个检查器窗口是 Pwnshop.nib 的一部分,它是我的主要 nib。我有另一个名为“Document.nib”的笔尖,它是文档窗口。我希望能够根据哪个文档窗口是活动的来更改检查器,有点像 Interface Builder 的检查器。问题是我想访问另一个 nib 中的对象。请注意,有多个文档窗口,但只有一个检查器窗口。
有人可以帮我吗?
cocoa - 在 NSDocument 中捕获窗口事件
我有一个带有 TextView 的基于文档的 Cocoa 应用程序,我想捕获对它的点击,所以我试图拦截诸如 mouseDown、mouseUp 等窗口事件,然后将它们与我的 TextView 相关联。
我尝试了两件事:
1.) 我将 TextView 设置为文档窗口的初始第一响应者,并覆盖了文档类上的 mouseDown 事件,但它没有触发。
2.) 我将 NSWindow 子类化并覆盖 mouseDown,然后在我的文档 xib 中将该子类设置为我的 Window 类。那个事件也没有发生。
我注意到窗口的委托已经设置为我的文件所有者,这是我的 NSDocument 子类。如果我的文档子类是我的窗口的委托,为什么事件不会在我的 NSDocument 上触发?
cocoa - applicationDidFinishLaunching:从NIB加载NSDocument后执行
也许我走错了路,但在我的应用程序中,我有可加载的捆绑包,可将NSMenuItem
条目添加到主菜单。
我遍历所有包并确定要添加的菜单项,然后相应地添加它们。
现在的问题是,这样的代码在基于文档的应用程序中应该放在哪里?
最初我把它放在我的 NSDocument 子类的方法中,但这有重复相同项目次数-windowControllerDidLoadNib:
的不良副作用,我打开的文档数量在哪里(即它不是放置代码的地方) .n
n
所以然后我尝试将代码放在我NSApplicationDelegate
的-applicationDidFinishLaunching:
方法中,这确实意味着它只运行一次,但我面临一个问题,即文档在执行之前(或至少在它完成之前)弹出并显示 -applicationDidFinishLaunching:
。
通常在哪里放置在启动时将菜单项动态添加到基于文档的应用程序的代码的正确位置?
cocoa - 多个文档同时打开,每个文档具有不同的菜单项状态
在基于 Cocoa 文档的应用程序中,使菜单栏中的菜单项状态与当前可见文档保持同步的最佳方式是什么?
例如,假设您有一个带有标尺视图的文档,可以通过“显示标尺”(关闭状态)和“隐藏标尺”(打开状态)菜单项隐藏/显示。用户同时打开了两个文档。他/她将标尺隐藏在一个文件中,但没有隐藏在另一个文件中。当用户在文档之间移动时,菜单项应该反映该文档的状态,而不是整个应用程序的状态。
一个人如何干净地做到这一点?我用谷歌搜索,但似乎没有预定义的“开箱即用”方式来做到这一点。如果 NSDocument 有某种“didRegainFocus”类型的方法可以添加这样的逻辑,那就太好了。
我的实际实现有点棘手,因为它实际上是我的 NSDocument 中的 NSViewController 处理这些特定的菜单项。
什么时候MyDocument
是当前活动的文档,我需要方法来确保应用程序主菜单中myCustomizedTextViewController
几个 s 的状态。NSMenuItem
一个是真正的统治者。另一个是类似的临时设置。
objective-c - 基于文档的应用程序,与否?
我正在编写一个可用于管理舞蹈学院的桌面应用程序。我的核心数据模型包含诸如学生、教师、班级、发票等实体以及它们之间的各种关系。
我计划的 UI 包含一个垂直拆分视图,左侧有一个类似 iTunes 的 OutlineView。当您单击该大纲视图中的“学生”项目时,右侧面板的内容将从 ManageStudents NIB 中交换进来。同样,如果您单击大纲视图中的“发票”项,当前视图将被 ViewInvoices 视图替换。相当简单,是吗?
我的大难题是是否要基于文档?我所有的阅读都表明,如果用户一次打开多个实体实例,那将是一个不错的选择。这里不是这种情况——在任何时间点都只会打开一个主窗口的实例。
另一方面,我可以从我看到的基于 NSDocument 的示例中看到很多好处(老实说,我在网络上看到的大多数示例似乎都是基于文档的)。如果我要走这条路,我很好奇我是否会为我的每个基本实体定义一个文档类型,或者只为一个控制文档定义一个文档类型。
任何指导将不胜感激。或者,指向某个地方的指针,该指针在 NSDocument 何时适合/不适合时提供具体建议(Apple 的“基于文档的应用程序概述”有用地建议“文字处理器和电子表格应用程序是基于文档的应用程序的两个示例” - 我希望对于其他实际应用程序更有洞察力和相关性的东西)
objective-c - 希望将选项卡引入基于文档的应用程序,想法?
我有一个基于文档的应用程序,到目前为止,它只是简单地编辑文档,每个文档都有一个新窗口。
我现在添加了创建项目的功能,该项目本身就是一个文档。该项目将包含一个文件列表,可以使用(希望)与我现有子类相同的代码进行编辑NSDocument
,但文档编辑器将嵌入到项目窗口中,而不是在新窗口中打开。
例如,Xcode 如何在编辑器窗格中打开每个文件,而不为每个文档使用一个新窗口?我假设它使用基于文档的体系结构,因为它的行为与任何其他基于文档的应用程序非常相似,除了单个窗口之外。
由于NSDocument
必须(根据文档)有它自己的窗口控制器,是否可以将该窗口“嵌入”到另一个窗口中(即在我的项目窗口中),使镀铬不可见以产生单个窗口的效果?
编辑:关于 CocoaDev 的讨论看起来非常有用:基于文档的应用程序,所有文档都有一个窗口
cocoa - NSDocument writeToURL:,保存一个简单的html文档
我试图实现一个保存功能来保存一个 html 文件。目前,当我尝试保存时它会返回错误。我的代码是
当我尝试保存它时,它会返回错误:-[NSConcreteMutableData writeToURL:ofType:error:]: unrecognized selector sent to instance 0x10016d900
-[NSConcreteMutableData writeToURL:ofType:error:]: unrecognized selector sent to instance 0x10016d900
. 我厌倦了使用普通的 NSString 并且它也不起作用。
谢谢你的帮助
cocoa - 使用 Cocoa 打开文档
我有以下方法来打开文档。
似乎文档及其视图在YES
返回之前未加载,因此我无法设置文本视图的内容,因为它尚未加载。有谁知道解决这个问题的方法?
提前致谢
iphone - 如何从 NSDocumentDirectory 读取数据
大家好,我正在开发一个记录用户声音并将其保存到 NSDocumentDirectory 的应用程序。数据文件保存得很好。但问题是我想播放这些文件。我正在使用表格视图来填充它NSDocumentDirectory 中的文件数。但该表仅显示当前声音文件的一个单元格。我在某处做错了,请帮帮我。我正在使用此代码玩。
其中 recorderFilePath 是文件的路径。在 NSDate frmattor 的帮助下,路径每次都是新的。但不知道如何使用 DocumentDirectory 中的所有文件填充表格视图。
Please-2 帮帮我...我是这项技术的新手。
在此先感谢大家........
objective-c - 如何检查响应者链?
我正在使用基于文档的体系结构在单个窗口中做一些疯狂的多个文档,我已经完成了 95%。
我有这个两层文档架构,其中父文档打开并配置窗口,提供“子”文档列表。当用户选择其中一个孩子时,该文档将使用相同的窗口控制器打开,并将 aNSTextView
放置在窗口中。更改窗口控制器的文档关联,以便“编辑的点”和窗口标题跟踪当前选定的文档。想想一个 Xcode 项目,以及当您在其中编辑不同文件时会发生什么。
为了将代码置于伪形式,当打开子文档时,在父文档中调用这样的方法。
这行得通,而且我知道窗口控制器在任何给定时间都具有正确的文档关联,因为更改点和标题跟随我正在编辑的任何文档。
但是,当我点击保存时,(CMD+S 或文件 -> 保存/另存为)它想要保存父文档,而不是当前文档(如[[NSDocumentController sharedDocumentController] currentDocument]
窗口标题和更改点所报告和指示的那样)。
通过阅读NSResponder
文档,似乎链条应该是这样的:
当前视图 -> 超级视图(重复) -> 窗口 -> WindowController -> 文档 -> DocumentController -> 应用程序。
我不确定基于文档的体系结构是如何设置响应者链的(即它是如何放置NSDocument
和NSDocumentController
进入链的),所以我想调试它,但我不确定在哪里看。如何在任何给定时间访问响应者链?