Swift 故事板:拆分视图控制器在 MacOS 上未正确显示
Posted
技术标签:
【中文标题】Swift 故事板:拆分视图控制器在 MacOS 上未正确显示【英文标题】:Swift storyboards: split view controller not showing properly on MacOS 【发布时间】:2014-11-02 23:05:02 【问题描述】:我正在尝试在 MacOS 上使用故事板和 swift 实现拆分视图控制器:
由于某种原因,只有右侧出现。有什么想法吗?
【问题讨论】:
【参考方案1】:这实际上是一个窗口大小问题。由于它是未定义的,它会将左侧推到视野之外。只需将光标放在左侧并拖动即可显示左侧视图。
希望对你有帮助。
更新:
实际上不是窗口大小问题。看起来 split view controller 默认将一侧推到视野之外。相反,我能够使用插入视图控制器的拆分视图组件正确查看两个窗格。
我将在最新的 WWDC 中查看有关此问题的信息:
https://developer.apple.com/videos/wwdc/2014/?id=212
https://developer.apple.com/videos/wwdc/2014/?id=214
2014 年 3 月 11 日更新:
在第一个截屏视频的 07:00 分钟后,我知道发生了什么。看看下面的截图:
-
使 Split View Controller 与主窗口一样宽。
调整拆分视图项目的大小。
点击最右边的项目Split View Item,在Pin弹出菜单中添加Missing Constraints em>。
您可能需要几次尝试才能做到正确。我测试了 3 次,它确实有效。
【讨论】:
我如何定义它以使其停止这样做? 缺少约束不可点击。我有同样的问题【参考方案2】:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/ObjC_classic/index.html#//apple_ref/doc/uid/20001093
NSSplitViewDelegate
类SplitViewController: NSSplitViewController//,NSSplitViewDelegate
Swift storyboards: split view controller not showing properly
这对我来说也确实是个问题。现在我在我的代码中解决了这个问题。
1.创建一个类扩展的NSSplitViewController。 2.将在第 1 阶段创建的类设置为您在 StoryBord 上创建的 SplitView 上的自定义类。 3.在viewDidLoad()中调用MySplitView.adjustSubviews()。
import Cocoa
class SplitViewController: NSSplitViewController//,NSSplitViewDelegate
@IBOutlet weak var MySplitView: NSSplitView!
override func viewDidLoad()
super.viewDidLoad()
MySplitView.adjustSubviews();
override func splitView(splitView: NSSplitView, constrainMinCoordinate proposedMinimumPosition: CGFloat, ofSubviewAt dividerIndex: Int) -> CGFloat
return proposedMinimumPosition + 200
【讨论】:
以上是关于Swift 故事板:拆分视图控制器在 MacOS 上未正确显示的主要内容,如果未能解决你的问题,请参考以下文章
在故事板中添加新的视图控制器后是不是需要手动添加 ViewController.swift 文件?
应用于控制器的背景未应用于故事板swift中的表格视图单元格