我想在我的Cocoa应用程序中更改NSSplitView's 的颜色dividerColor,但是当我输入以下代码时,Cannot assign to the result of this expression发生了错误.
splitView.dividerColor = NSColor.redColor()
Run Code Online (Sandbox Code Playgroud)
我认为这是因为它.dividerColor是一个只读属性,因此如果从nib实例化它,就不能覆盖代码中的颜色.
但是,我找不到任何这样的首选项来改变Xcode的Inspector上的颜色NSSplitView.那么我怎样才能改变分频器的颜色呢?
请注意,我不使用NSSplitViewController; 我用NSSplitView在上面NSViewController.

现在我想在我的应用程序运行时隐藏或显示我的条件分隔符.使用此委托方法:
- (BOOL)splitView:(NSSplitView *)splitView shouldHideDividerAtIndex:(NSInteger)dividerIndex
{
if (A)
return YES;
else
return NO;
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用,为什么?如何使用这种方法?非常感谢你!
我想制作一个NSSplitView非常薄的分区,只有1px宽的Mail.app,Xcode.app和许多其他Mac应用程序.
有什么好办法呢?
我已尝试在Interface Builder中设置分隔符样式以及子类化NSSplitView以覆盖-dividerThickness,但最接近的是2px,这打破了分频器功能(我无法再移动分频器).
编辑:我知道替代品,如RBSplitView和BWSplitView,但我想NSSplitView尽可能使用.基本上,Apple如何做到这一点?
我有NSSplitView四个子视图.每个子视图都有一个标题,其中包含一些文本和一个开/关复选框,下面是一个NSTableView.用户可以使用复选框切换表的可见性.
如果在程序启动时可以看到该表,并且用户取消选中该复选框,则该表将消失.因此子视图变得更小.
我如何做出NSSplitView反应(通过调整分隔线)?
我正在尝试迁移我的Objective-C,现在将Swift知识改进为Mac OS X的应用程序.陡峭的学习曲线!
我试图NSSplitViewController在"详细视图"中加载具有不同视图的视图,具体取决于您在"主视图"上按下的按钮.以下教程和搜索时间让我一无所获.
我目前有:
import Cocoa
class MainSplitView: NSSplitViewController, BlissWindowDelegate {
var masterViewController: vcMainMenu {
let masterItem = splitViewItems[0] as! NSSplitViewItem
return masterItem.viewController as! vcMainMenu
}
override func viewDidLoad() {
super.viewDidLoad()
masterViewController.delegate = self
}
func userDidSelectFunction(function: String) {
switch function {
case "app":
println("You have selected to load the appointment screen")
case "cust":
println("You have selected to load the customer screen")
case "login":
println("I think I am here and you've clicked login?")
let detailItem = splitViewItems[1] …Run Code Online (Sandbox Code Playgroud) 我有一个窗口,右侧是源列表侧边栏,左侧是NSSplitView内部视图.
当我调整窗口大小时,额外的空间将分发到源列表和内容视图.如何使源列表保持其固定宽度.所有Apple应用程序都这样做,所以我希望我错过了一个方法.
我在NSSpliView上使用autolayout,设置如下图所示
拆分视图位于一个可以调整大小的窗口中,当调整大小时,分隔符的比例变化为50:50,如何更改,以便底部视图的高度保持不变并且顶视图的大小调整(但不超过124px )但仍然可以自由地通过拖动分割手动更改它?

我希望有人可以帮我解决这个问题.
无论我做什么,无论是IB还是代码,我都无法使新的NSSplitViewController及其项目可折叠或保持其优先级.
虽然此视频另有说明,但无法通过界面构建器完成此操作:https://www.youtube.com/watch?v = ZIIuPo4F6tQ
我只能使splitview项目在代码中具有最小宽度,但这几乎就是它.我毫不费力地测试了Swift和Objective-C实现.
这是我在swift中写的:
override func viewDidLoad() {
super.viewDidLoad()
// ---
var left: NSSplitViewItem = self.splitViewItems[0] as NSSplitViewItem
var right: NSSplitViewItem = self.splitViewItems[1] as NSSplitViewItem
// ---
// NOTE: these are not working properly in the interface builder for now
self.view.addConstraint(NSLayoutConstraint(
item: left.viewController.view,
attribute: NSLayoutAttribute.Width,
relatedBy: NSLayoutRelation.GreaterThanOrEqual,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 0,
constant: 200
))
self.view.addConstraint(NSLayoutConstraint(
item: right.viewController.view,
attribute: NSLayoutAttribute.Width,
relatedBy: NSLayoutRelation.GreaterThanOrEqual,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 0,
constant: 200
))
// --- …Run Code Online (Sandbox Code Playgroud) 我有一个NSSplitView在两个NSViews中都有内容.左NSView有2个约束 - Equal Widths和Equal Heights.正确的NSView有一些简单的东西,比如NSTextField,它通过约束Center X Alignment和中心来集中Center Y Alighment.这是我希望在调整窗口和/或NSSplitView分隔符大小时的样子:

这就是发生的事情:

我已经尝试了大量的配置更改,我尝试使用NSSplitViewController与仅将NSSplitView放入NSViewController以编程方式调整更多参数,但我没有任何运气.每当调整窗口大小时,左视图总是占用多余的空间.分隔符也是如此(它可以调整大小,但放开鼠标按钮会使其向后快照).看来我在这里缺少一些基本的东西.
nssplitview ×10
cocoa ×9
macos ×3
swift ×3
autolayout ×2
appkit ×1
nsview ×1
objective-c ×1
split ×1
xcode6 ×1