问题标签 [nssplitviewcontroller]

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.

0 投票
2 回答
1797 浏览

swift - 更新 NSSplitViewController 中的第二个视图控制器

我有一个NSSplitViewController在其中first viewcontroller显示一个表格的表格,并且second viewcontroller应该根据表格行的选择从一个视图控制器列表中显示一个视图控制器。

在此处输入图像描述

tableViewSelectionDidChange()用来获取选定的行。

现在我有一堆视图控制器(故事板 ID 作为行号给出),我应该添加和second viewcontroller删除NSSplitViewController

我怎样才能做到这一点?

0 投票
0 回答
193 浏览

swift - 如何从视图(xib)中获取父拆分视图控制器

我目前可以使用 Storyboards 来实现这一点:

nil如果我在 xib 文件中尝试它,它会返回。我的视图是 SplitView 中的子视图。

0 投票
1 回答
227 浏览

swift - NSSplitViewController 的“视图”出口不应该指向它的 NSSplitView;改用“splitView”插座

我一直在使用故事板开发一个 macOS 应用程序,该故事板定义了一个带有工具栏和拆分视图的主窗口。它是用 Swift 3 编写的——我还没有迁移到 Swift 4。splitview 有一个用于图形的窗格和另一个用于文本日志的窗格;两者都滚动。我对这三个都有视图控制器;这两个附属场景通过关系与拆分视图相关联。直到今天我安装了 Xcode 9 beta 4。(是的,我现在在垃圾箱里有 beta 3 并且可以恢复)

清理构建文件夹并编译后,出现错误

然而,NSSplitViewController 子类没有定义出口(它的两个子类安排在他们的 viewDidLoad 方法中告诉它它们的存在)。此外,我似乎无法在该窗口与其控制器之间创建一个出口,该出口首先会产生错误。

我现在还注意到,在拆分视图控制器的场景中绘制的拆分是水平的,而不是像以前那样垂直。我没有办法改变这种情况。(我无法运行该应用程序,所以我不知道它是否重要。我怀疑它确实如此。)

最终结果是我看不到错误试图告诉我什么。该错误会阻止应用程序构建和运行,而在 beta 3 中它可以工作。我希望有人可以解释 Xcode 告诉我的内容以及如何修复它。

0 投票
4 回答
1321 浏览

macos - 如何使用 NSSplitViewController 设置自定义 NSSplitView?

我想NSSplitView在我的NSSplitViewController.

文档说:

要提供自定义拆分视图,请在继承的 viewDidLoad() 方法中调用 super 之前随时设置此属性;也就是说,在拆分视图控制器的 isViewLoaded 属性为 true 之前。

我的NSSplitViewController子类称为MainVC.

我尝试-viewDidLoad在调用之前设置我的自定义拆分视图[super viewDidLoad]

但它没有用。我收到以下错误:

2017-09-02 10:35:43.527312-0700 Zee[6497:632581] ** * 断言失败 -[MainVC setSplitView:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/AppKit/AppKit- 1561/控制器/NSSplitViewController.m:220

2017-09-02 10:35:43.527558-0700 Zee[6497:632581] MainVC:-splitView 只能在视图加载之前分配

我也尝试过覆盖loadView

但我得到:

2017-09-02 10:39:39.377345-0700 Zee[6575:639146] ** * -[__NSArrayM objectAtIndex:]:空数组的索引 0 超出范围

如果我在调用后执行分配[super loadView],我会得到与我在中尝试时相同的错误-viewDidLoad

如何NSSplitView在我的NSSplitViewController子类中使用自定义?

0 投票
1 回答
107 浏览

swift - 为什么我不能访问 viewDidLoad() 中的 NSTextField 对象

为什么我得到一个“在展开可选值时意外发现 nil”错误,表明如果我在上课NSTextField期间尝试更新对象 (text1) 不存在?viewDidLoad()NSView

text1.stringValue = "View loaded OK"如果我从函数中注释掉该行,viewDidLoad()那么它运行良好,我可以使用@IBAction链接到视图上的按钮来访问对象 - 所以它连接正常。

0 投票
0 回答
64 浏览

macos - supplementalTargetForAction:sender: 没有被调用

我正在尝试将菜单项中的操作发送到 NSSplitViewController 的子视图控制器。据我了解,我应该覆盖supplementalTargetForAction:sender:splitViewController 以将子视图控制器提供给响应者链(请参阅这篇文章)。

但是,supplementalTargetForAction:sender:永远不会被调用。

该文档指出:

如果这个 NSResponder 实例本身没有 respondsToSelector:,则调用supplementalTargetForAction:sender:。

在调试工作中,我创建了一个只有普通 viewController 的新 Xcode 项目,重写了那里的方法以查看它是否被调用 - 它没有。

这是我的代码:

故事板屏幕截图

我究竟做错了什么?

0 投票
1 回答
113 浏览

swift - 检测活动的 NSSplitViewItem

我有一个带有(几个)SplitViewItems 的 SplitView。Echt SplitViewItem 有一个 ViewController,里面有多个视图。

我需要检测哪个 SplitViewItems 具有用户的焦点。

例如:如果用户单击任何控件/视图(或以任何其他方式导航到它),则包含该视图项的 SplitViewItem 的背景应该改变。由于我不知道SplitViewItem 中的ViewController 中将包含哪些/多少视图,所以我更愿意检测哪个SplitViewItem 是SplitViewController 中的“活动”视图。

我整天都在寻找解决方案。我找不到任何类型的通知,也找不到解决此管理响应者链的方法。

有人可以指出我正确的方向吗?一个(快速)代码示例将不胜感激。

谢谢!

0 投票
2 回答
240 浏览

cocoa - 从 Storyboard 创建时,NSSplitViewController 不会折叠

我试图模仿笔记和联系人等应用程序的行为,当我调整窗口大小时,左侧拆分视图项目会折叠。使用情节提要时,我无法重新创建此行为。

如果我在代码中创建 NSSplitViewController 这工作正常,但是如果我通过情节提要这样做它就行不通。

我不知道这是一个错误,还是我在 NSSplitViewController 上缺少一个属性,当它来自 Storyboard 以使折叠行为起作用时。

代码:

代码

故事板:

故事板

0 投票
2 回答
606 浏览

xcode - XIB 中的 NSSplitViewController/NSSplitViewItem 支持

是否支持 XIB 的 NSSplitViewController/NSSplitViewItem?我只看到 NSSplitView

我可以拖放 NSViewController 并将其子类为 NSSplitViewController 吗?如何添加大部分开箱即用的 NSSplitViewItem?

XIB 中的拆分视图控制器

我可以很容易地在故事板中看到对它们的支持。

故事板中的拆分视图控制器

0 投票
1 回答
49 浏览

macos - 如何修复 NSSplitViewController 中 splitDividerView 的位置

如何修复 NSSplitViewController 中 splitDividerView 的位置我已经搜索了多年,但它不起作用。请帮助,谢谢!一旦这个应用程序启动,左视图宽度为 150,但我仍然可以通过拖动 splitDividerView 来调整左右视图的大小。我附上截图供参考

截图供参考