问题标签 [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.
swift - 如何从视图(xib)中获取父拆分视图控制器
我目前可以使用 Storyboards 来实现这一点:
但nil
如果我在 xib 文件中尝试它,它会返回。我的视图是 SplitView 中的子视图。
swift - NSSplitViewController 的“视图”出口不应该指向它的 NSSplitView;改用“splitView”插座
我一直在使用故事板开发一个 macOS 应用程序,该故事板定义了一个带有工具栏和拆分视图的主窗口。它是用 Swift 3 编写的——我还没有迁移到 Swift 4。splitview 有一个用于图形的窗格和另一个用于文本日志的窗格;两者都滚动。我对这三个都有视图控制器;这两个附属场景通过关系与拆分视图相关联。直到今天我安装了 Xcode 9 beta 4。(是的,我现在在垃圾箱里有 beta 3 并且可以恢复)
清理构建文件夹并编译后,出现错误
然而,NSSplitViewController 子类没有定义出口(它的两个子类安排在他们的 viewDidLoad 方法中告诉它它们的存在)。此外,我似乎无法在该窗口与其控制器之间创建一个出口,该出口首先会产生错误。
我现在还注意到,在拆分视图控制器的场景中绘制的拆分是水平的,而不是像以前那样垂直。我没有办法改变这种情况。(我无法运行该应用程序,所以我不知道它是否重要。我怀疑它确实如此。)
最终结果是我看不到错误试图告诉我什么。该错误会阻止应用程序构建和运行,而在 beta 3 中它可以工作。我希望有人可以解释 Xcode 告诉我的内容以及如何修复它。
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
子类中使用自定义?
swift - 为什么我不能访问 viewDidLoad() 中的 NSTextField 对象
为什么我得到一个“在展开可选值时意外发现 nil”错误,表明如果我在上课NSTextField
期间尝试更新对象 (text1) 不存在?viewDidLoad()
NSView
text1.stringValue = "View loaded OK"
如果我从函数中注释掉该行,viewDidLoad()
那么它运行良好,我可以使用@IBAction
链接到视图上的按钮来访问对象 - 所以它连接正常。
macos - supplementalTargetForAction:sender: 没有被调用
我正在尝试将菜单项中的操作发送到 NSSplitViewController 的子视图控制器。据我了解,我应该覆盖supplementalTargetForAction:sender:
splitViewController 以将子视图控制器提供给响应者链(请参阅这篇文章)。
但是,supplementalTargetForAction:sender:
永远不会被调用。
该文档指出:
如果这个 NSResponder 实例本身没有 respondsToSelector:,则调用supplementalTargetForAction:sender:。
在调试工作中,我创建了一个只有普通 viewController 的新 Xcode 项目,重写了那里的方法以查看它是否被调用 - 它没有。
这是我的代码:
我究竟做错了什么?
swift - 检测活动的 NSSplitViewItem
我有一个带有(几个)SplitViewItems 的 SplitView。Echt SplitViewItem 有一个 ViewController,里面有多个视图。
我需要检测哪个 SplitViewItems 具有用户的焦点。
例如:如果用户单击任何控件/视图(或以任何其他方式导航到它),则包含该视图项的 SplitViewItem 的背景应该改变。由于我不知道SplitViewItem 中的ViewController 中将包含哪些/多少视图,所以我更愿意检测哪个SplitViewItem 是SplitViewController 中的“活动”视图。
我整天都在寻找解决方案。我找不到任何类型的通知,也找不到解决此管理响应者链的方法。
有人可以指出我正确的方向吗?一个(快速)代码示例将不胜感激。
谢谢!
macos - 如何修复 NSSplitViewController 中 splitDividerView 的位置
如何修复 NSSplitViewController 中 splitDividerView 的位置我已经搜索了多年,但它不起作用。请帮助,谢谢!一旦这个应用程序启动,左视图宽度为 150,但我仍然可以通过拖动 splitDividerView 来调整左右视图的大小。我附上截图供参考