Mik*_*fer 6 macos xcode nssplitview swift
我有一段时间设置一个简单的拆分视图.第一个拆分视图已折叠.我需要为它设置最小宽度.我在网上看到的所有内容(NSSplitViewController/NSSplitView都很少)都是针对Objective-C的,将所有内容放在app委托中,并使用XIB.
这是一个场景:具有segView到SplitView控制器的窗口控制器,它有两个拆分视图(2个视图控制器).
哪个对象需要NSSplitViewDelegate?
编辑:添加代码片段: 例如,我有这个:
import Cocoa
class ViewController: NSSplitViewController, NSSplitViewDelegate {
@IBOutlet weak var pdlSplitView: NSSplitView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func splitView(splitView: NSSplitView, constrainMinCoordinate proposedMinimumPosition: CGFloat, ofSubviewAt dividerIndex: Int) -> CGFloat {
return proposedMinimumPosition + 200
}
}
Run Code Online (Sandbox Code Playgroud)
还有更多我想念的吗?
谢谢
UPDATE
根据下面的评论,我做了一个更改,但现在我在AppDelegate的类定义上获得了一个sigAbort.完整代码
视图控制器:
import Cocoa
class ViewController: NSSplitViewController, NSSplitViewDelegate {
@IBOutlet weak var pdlSplitView: NSSplitView!
let publicDataListings : PDL = PDL()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.pdlSplitView.delegate = self
}
override func splitView(splitView: NSSplitView, constrainMinCoordinate proposedMinimumPosition: CGFloat, ofSubviewAt dividerIndex: Int) -> CGFloat {
return proposedMinimumPosition + 200
}
}
Run Code Online (Sandbox Code Playgroud)
SidebarViewController:
import Cocoa
class SidebarViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
}
}
Run Code Online (Sandbox Code Playgroud)
DatasetViewController:
import Cocoa
class DatasetViewController: NSViewController, NSSplitViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
}
}
Run Code Online (Sandbox Code Playgroud)
更新 我拿走了我的自定义NSSplitViewController类并创建了两个NSSplitView类,一个使用约束方法.现在,我看到了两个子视图,但它们比它们应该小得多:
有没有人用Swift和Storyboard做到这一点?
Myt*_*dia 21
使用NSSplitViewController/NSSplitView的自动布局设置故事板中的最小宽度不需要编码.
选择需要最小宽度的CustomView(例如200),并将宽度约束集添加到所需的值,这将添加"Equal"约束(例如Custom View.Width等于200).
接下来找到新约束并将约束关系更改为"大于或等于"(例如,因此您现在宽度≥200).
您现在在NSSplitView中具有最小宽度.然后,您可以使用"优先级"字段解决与任何其他自动布局约束的任何冲突.
Sin*_*rpa -2
实施
- (CGFloat)splitView:(NSSplitView *)splitView constrainMinCoordinate:(CGFloat)proposedMin ofSubviewAt:(NSInteger)dividerIndex { ... }
Run Code Online (Sandbox Code Playgroud)在 NSSplitViewController 中
归档时间: |
|
查看次数: |
6581 次 |
最近记录: |