如何在swift中设置NSTableColumn headerCell stringValue?

时间:2015-01-04 05:31:07

标签: macos cocoa swift nstablecolumn

该文档使它看起来就像这样简单:

var tc = NSTableColumn(identifier: "mycolumn")
tc.headerCell.stStringValue("foo")

最后一行代码是编译错误,我不明白。最重要的是,根据XCode似乎的情绪,我得到了几个不同的编译错误消息,这个完全相同的代码行。我已经看到了以下编译错误:

  1. AnyObject没有名为'stStringValue'的成员
  2. 无法将表达式的类型'NSString'转换为'StringLiteralConvertible'类型
  3. 尝试设置变量并将其放在那里时,我得到了这个:

    1. 无法将表达式的类型'String'转换为'String?!'
    2. 类型

      当我尝试"foo \(bar)"变体时,我得到了这个:

      1. 找不到会员'convertFromStringInterpolationSegment'
      2. 如果我声明一个类型为String?!的变量,那就足够了,它说Cannot convert the expression's type 'String?!' to type 'String?!'

        我不明白发生了什么。这是一个错误吗?

        如果我在游乐场尝试这个,那么游乐场实际上想要使用额外的参数自动完成,这种格式:

        tc.headerCell.setStringValue("foo", resolvingEntities: false)
        

        这没有编译时错误,但在运行时导致seg错误。此格式也不在文档中。

        我真的不知道发生了什么,而且错误消息没有帮助。

1 个答案:

答案 0 :(得分:0)

尽管有可怕的错误消息,我终于让它工作了。问题是headerCell被输入为AnyObject,我必须投出它。第二个问题是,在快速的土地上,它是一种财产,而不是一种方法。

这终于奏效了:

var tc = NSTableColumn(identifier: "mycolumn") 
let hc = column1.headerCell as NSTableHeaderCell
hc.stringValue = "foo"