【问题标题】:How do I set an NSTableColumn headerCell stringValue in swift?如何快速设置 NSTableColumn headerCell stringValue?
【发布时间】:2015-01-04 13:56:24
【问题描述】:

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

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

最后一行代码是编译错误,我没看懂。最重要的是,根据 XCode 的心情,我会收到一些针对完全相同的代码行的不同编译错误消息。我看到了以下编译错误:

  1. AnyObject 没有名为“stStringValue”的成员
  2. 无法将表达式的类型“NSString”转换为类型“StringLiteralConvertible”

我在尝试设置变量并将其放入其中时得到这个:

  1. 无法将表达式的“字符串”类型转换为“字符串?!”类型

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

  1. 找不到成员“convertFromStringInterpolationSegment”

如果我声明一个类型为 String?! 的变量,它会说是 Cannot convert the expression's type 'String?!' to type 'String?!'

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

如果我在操场上尝试这个,操场实际上想用一个额外的参数自动完成,这种格式:

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

这没有编译时错误,但会导致运行时出现段错误。这种格式也没有在文档中。

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

【问题讨论】:

    标签: macos cocoa swift nstablecolumn


    【解决方案1】:

    尽管出现了可怕的错误消息,但我终于让它工作了。问题是headerCell 被输入为AnyObject,我不得不强制转换它。第二个问题是,在 swift land 中,它是一种属性,而不是一种方法。

    这终于奏效了:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-14
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      • 2016-12-02
      相关资源
      最近更新 更多