无法使用Swift将此CGFloat分配给XCode中的属性

时间:2015-02-28 09:16:17

标签: objective-c xcode swift nsview

我正在尝试将NSSplitView的分隔符的厚度设置为指定的CGFloat值但是我得到错误:“无法在Swift中将此表达式错误的结果分配给”。

我这样做,看起来是正确的,你觉得这有什么不对?

i.stack.imgur.com/2ylKS.png

splitView.dividerThickness是一个CGFloat值,如图2所示。

enter image description here

2 个答案:

答案 0 :(得分:2)

该属性是只读

 var dividerThickness: CGFloat { get }

因此您无法指定新值。文档说明:

  

您可以继承NSSplitView并覆盖此方法以更改拆分视图分隔线的粗细。

答案 1 :(得分:1)

错误似乎很明显,可以解决:dividerThickness需要Float,而不是CGFloat

为了解决这个问题,你可以:

  • 声明您的价值:var val : Float = 0.0
  • 将您的值保留为CGFloat,然后使用Float()初始值设定项:spitView.dividerThickness = Float(val)

因为CGFloat在32位和64位计算机上的大小不同。

不幸的是,演员表并没有自动完成。但是您可能能够找到(或编写自己的)运算符重载。