xcode – 设置NSSplitViews的最小宽度

前端之家收集整理的这篇文章主要介绍了xcode – 设置NSSplitViews的最小宽度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一段时间设置一个简单的拆分视图.第一个拆分视图已折叠.我需要为它设置最小宽度.我在网上看到的所有内容(NSSplitViewController / NSSplitView都很少)都是针对Objective-C的,将所有内容放在app委托中,并使用XIB.

这是场景:
具有segue到SplitView控制器的窗口控制器,它有两个分割视图(2个视图控制器).

哪个对象需要NSSplitViewDelegate?

编辑:添加代码段:
例如,我有这个:

  1. import Cocoa
  2.  
  3. class ViewController: NSSplitViewController,NSSplitViewDelegate {
  4.  
  5.  
  6. @IBOutlet weak var pdlSplitView: NSSplitView!
  7.  
  8. override func viewDidLoad() {
  9. super.viewDidLoad()
  10.  
  11. }
  12. override func splitView(splitView: NSSplitView,constrainMinCoordinate proposedMinimumPosition: CGFloat,ofSubviewAt dividerIndex: Int) -> CGFloat {
  13. return proposedMinimumPosition + 200
  14. }
  15.  
  16. }

还有更多我想念的吗?

谢谢

UPDATE

根据下面的评论,我做了一个更改,但现在我在AppDelegate的类定义上获得了一个sigAbort. Full code

视图控制器:

  1. import Cocoa
  2.  
  3. class ViewController: NSSplitViewController,NSSplitViewDelegate {
  4.  
  5.  
  6. @IBOutlet weak var pdlSplitView: NSSplitView!
  7.  
  8. let publicDataListings : PDL = PDL()
  9.  
  10.  
  11. override func viewDidLoad() {
  12. super.viewDidLoad()
  13.  
  14. // Do any additional setup after loading the view.
  15. self.pdlSplitView.delegate = self
  16.  
  17. }
  18.  
  19. override func splitView(splitView: NSSplitView,ofSubviewAt dividerIndex: Int) -> CGFloat {
  20. return proposedMinimumPosition + 200
  21. }
  22.  
  23. }

SidebarViewController:

  1. import Cocoa
  2.  
  3. class SidebarViewController: NSViewController {
  4.  
  5. override func viewDidLoad() {
  6. super.viewDidLoad()
  7. // Do view setup here.
  8. }
  9.  
  10.  
  11. }

DatasetViewController:

  1. import Cocoa
  2.  
  3. class DatasetViewController: NSViewController,NSSplitViewDelegate {
  4.  
  5. override func viewDidLoad() {
  6. super.viewDidLoad()
  7. // Do view setup here.
  8. }
  9.  
  10. }

更新
我拿走了我的自定义NSSplitViewController类并创建了两个NSSplitView类,一个使用约束方法.现在,我看到了两个子视图,但它们比它们应该小得多:

有没有人用Swift和Storyboard做到这一点?

解决方法

使用NSSplitViewController / NSSplitView的自动布局设置故事板中的最小宽度不需要编码.

选择需要最小宽度的CustomView(例如200),并将宽度约束集添加到所需的值,这将添加“等于”约束(例如,Custom View.Width等于200).

接下来找到新约束并将约束关系更改为“大于或等于”(例如,因此您现在宽度≥200).

您现在在NSSplitView中具有最小宽度.然后,您可以使用“优先级”字段解决与任何其他自动布局约束的任何冲突.

猜你在找的iOS相关文章