问题标签 [nsviewcontroller]
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 - Mac OS X Cocoa 单窗口应用架构
我无法理解如何以最佳方式设计应用程序以使单个窗口应用程序在 Mac OS X 中运行。我更喜欢单个文档 - 单个窗口应用程序(我没有编写实用程序应用程序),但不清楚在哪里我应该初始化一个窗口内容吗?
在 iOS 上,我应该为此使用-[UIViewController viewDidLoad]
或-[UIViewController viewWillAppear:]
根视图控制器的方法。
你能告诉我任何教程或解释如何处理 NSDocument - NSDocumentController - NSWindowController - NSViewController 类吗?
感谢您的回答。:-)
objective-c - 在加载的视图中选择一个控件
我有一个关于使用 NSViewController 和在视图之间切换的问题。我有一个 Cocoa 应用程序,其中有一个窗口。窗口的想法是它将一个一个地显示多个视图,其中每个视图都存储在一个单独的 XIB 文件中。每个视图都有一个对应的 NSViewController。我做了一个最小的例子,说明我在做什么,只加载第一个视图。
当窗口被加载时,来自 FirstView.xib 的视图也被加载并且视图显示在窗口中。在这种情况下,加载的视图只有一个文本字段,我希望突出显示文本字段,以便可以直接将输入写入其中,而无需用户单击它,但我不知道该怎么做。加载视图时是否可以选择文本字段?
阅读文档后,我发现我可能想将窗口的 initialFirstResponder 设置为文本字段,但是当文本字段与窗口位于不同的 XIB 文件中时,我找不到如何执行此操作。
objective-c - 使用带有多个 NSViewController 的工具栏
我有一个基于文档的单窗口应用程序,它加载了几个用作主视图的 NSViewController。每个视图控制器都是一个自包含的类,它处理某些业务需求,因此实现了工作所需的所有方法。
我的问题是如何在加载特定视图控制器时使工具栏工作。只要这些是在窗口类中实现的,我就可以将工具栏连接到委托,并将工具栏项连接到操作。但是,如果我尝试在loadView
视图的方法上为工具栏项设置新操作,则工具栏项会简单地忽略它并继续在主窗口类上调用该方法。
那么,如何动态更改工具栏项上的操作?
objective-c - 交换视图 - NSWindowController 和 NSViewController(s)
我是 Mac OS 编程的新手。目前我正在尝试创建一个简单的测量应用程序,该应用程序将有一个窗口,顶部有工具栏,底部有适当的视图。单击工具栏中的按钮应导致其下方的视图切换 - 例如单击“连接”按钮将显示连接设置,“测量”将显示来自设备的当前数据。
问题是 - 我不知道如何处理交换视图,也许换句话说 - 我知道但不完全是......我在这里找到了类似的讨论:NSViewController and multiple subviews from a Nib but there is no answer how to create NSWindowController以及如何将其分配给主窗口。因为我想有必要创建 NSWindowController 才能交换视图。如果我错了,请纠正我。
所以我正在创建新项目(这里称为 Sample)并且有 SampleAppDelegate.h 文件,它看起来像:
有一个窗口 ivar,它包含从 MainMenu.xib 创建的唯一一个窗口(我认为)。
那么我应该如何从 SampleAppDelegate 为窗口创建 NSWindowController 呢?
我是否应该只创建我的 WindowController 子类并在函数中 - (void)applicationDidFinishLaunching:(NSNotification *)aNotification of SampleAppDelegate 像这样:
我将非常感谢任何提示和帮助。
马尔钦
objective-c - 可可推送/弹出视图控制器的任何解决方案?
让我解决这个问题:我已经习惯了UIKit
,您可以将视图控制器推送/弹出到您心中的内容。这在 Mac 上是行不通的。
使用TwUI
,这在 Mac 上运行得非常好。例如,查看使用 TwUI@joshaber
的push/pop 示例。如果它完全稳定并且能够在 . 中嵌入控件,我会完全放弃 AppKit。但是,并不是所有的事情都可以在 中完成,有些事情我需要保留 AppKit。TwUI
AppKit
TUIView
TwUI
因此带来了我的问题。如何使用 AppKit 完成这样的事情?有没有让这变得容易的图书馆?还是我们需要自己做?仅使用replaceSubview:withSubview:
是不够的,也不是真正推动/弹出视图。
xcode - 使用 nib 创建自定义视图并在窗口中使用
我一直在努力解决这个问题,我似乎无法自己解决。
情况是这样的:我想要一个自定义的基于 Nib 的视图,它有自己的 ViewController。然后我想将此视图添加到窗口中。因此窗口应该包含我的自定义视图。
所以我开始创建一个非常简单的示例,如下所示:
- 在 Xcode 4 中,我创建了一个新的基于空白文档的 Cocoa 应用程序
- 我创建了一个新的 Cocoa 类,它应该扩展自
NSViewController
(这会导致 nib 与 .h 和 .m 文件一起创建。创建的 .h、.m 和 .xib 文件的名称FaceViewController
用于测试目的,它应该只显示文字暂时。 - 我
NSViewController.xib
在 InterfaceBuilder 中打开并添加一个多行文本组件并将其放置在自定义视图中,该视图已在 xib 文件中。我使文本跨越整个视图。 - 在
MyDocument.xib
我还添加了一个Custom View
占位符,它应该替换为我的自定义 FaceView。
从这个起点开始,我试图在MyDocument.xib
失败时包含创建的 View + ViewController 的所有内容,并且应该显示我的文本的区域仍然是空的(就像底层窗口的背景一样。
所以我的问题确实是我需要做的,以便我的 FaceView 被加载到我放置的自定义视图中MyDocument.xib
。以下是我不清楚的一些事情:
- 自定义视图从扩展,
NSView
因此我想将其更改为我的 FaceView,但视图不作为类存在,而是在 xib 的 InterfaceBuilder 中定义,我是否需要将其设置为除此之外的任何内容NSView
? - 我必须分配、初始化
FaceViewController
in 代码还是将其拖入我的两个 .xib 中的任何一个中就足够了? - 我可以使用 InterfaceBuilder 来放置我的 FaceView 还是必须以编程方式执行此操作?
我真的认为创建这样的自定义视图将是小菜一碟,但到目前为止结果恰恰相反,所以任何帮助将不胜感激。
cocoa - 第一个 Mac 应用程序 - 推送视图控制器
我有一个问题,我做了一些 iphone 应用程序,现在我想做一个小的 mac 应用程序。
从一个干净的应用程序中,我在 MainMenu xib 上添加了一个按钮,而不是通过一个操作将 NSViewController 添加到 MainMenu(来自 IB)。我用一个 nib 文件和一个按钮创建了一个新的 NSViewController (FirstViewController)。现在我只想创建一个从 MainMenu 推送 FirstController 的函数和一个从 FirstController 推送 MainMenu 的简单函数。
像这样的东西
我该怎么做???
objective-c - 在各种视图/笔尖之间共享一个用于绑定的对象(特别是一个 NSDocument)
我正在使用 Xcode 4 为 OSX (Lion) 编写应用程序。
用这个和互联网撞到了一点墙,到目前为止,事实证明这并不是特别有用。
我定义了一个文档,以及 MainMenu.xib 和一个文档窗口;文档窗口当然是在加载/创建文档时创建的,因此可以访问相关数据。
我想在这个项目中尽可能多地使用 Cocoa Bindings,所以我的问题是:
如果我创建另一个视图(假设是一个带有链接 Nib 的 NSViewController);我如何允许它访问文档的数据?
我尝试为文档类添加#import,但是当我将文档类上的#import 添加到视图控制器(以创建它)时,这会导致问题——我得到未知类型的编译错误。
我还沿着传递临时对象的路线(甚至在创建视图控制器后访问 getter / setter);肯定有更好,更清洁的方法吗?
该应用程序只有一个 NSWindowController(默认),就是它,它是来自 XCode 非核心数据基于文档的应用程序模板的香草。
谢谢你的帮助,克林特
objective-c - 跨多个 NSViewController 和 XIB 拆分 NSTabView
我刚刚进入桌面 Cocoa 开发(我有 iOS 开发经验)。如果这个问题看起来很基本,请原谅我。
话虽如此,我正在处理一个需要处理大量计算和功能的大型程序。几乎有十几个视图,用 NSTabView 组织。而不是将所有内容都倾倒到一个类的怪物中并创建一个让我的系统崩溃的 XIB 文件(Xcode 显然不是那么高效......谁知道?:P)。我希望每个选项卡都是它自己的 NSViewController 以及随附的 XIB;因此,我想从相应的 XIB 加载每个选项卡的视图。
我正在根据 UITabBarController 考虑这一点,但这似乎不起作用(据我所知,没有 NSTabViewController)。我不确定如何做到这一点(或者即使有可能——但我不能是唯一一个遇到这个问题的人?),我会很感激任何帮助。谢谢!
更新:我尝试将控制器的视图分配给选项卡的视图,但很快意识到这不会让我到任何地方。是否值得从头开始创建 NSTabViewController,或者是否有解决方案?
objective-c - 向 NSScrollView 添加大量视图
NSViewController
我正在尝试将字典中的每个元素的一个子视图(从 an中查看)添加到 aNSScrollView
以获得一种表格视图,但在单元格上具有更大的灵活性。
是否可以(以编程方式)放置(以编程方式)例如 100 个子视图彼此下方,以便您必须向下滚动NSScrollView
才能到达最后一个元素?