自定义tableViewCell

时间:2016-03-01 15:44:41

标签: objective-c xcode swift cocoa nstableview

我在这里疯了。

我一直在尝试遵循任何关于Cocoa tableViews的教程,我一遍又一遍地遇到同样的问题。

我的项目:

  1. 2个xib文件:MainMenu,MasterViewController(MasVC)
  2. 在MasterViewController中设置的表(连接到MasVC.xib)
  3. 在AppDelegate中添加为子视图的MasterViewController视图:

    masterViewController = MasterViewController(nibName: "MasterViewController", bundle: nil)
    window.contentView!.addSubview(masterViewController.view)
    masterViewController.view.frame = window.contentView!.bounds
    
  4. 现在我正在尝试创建自定义TableCellView,因此我添加了一个名为CustomCell的新文件,该文件继承自TableCellView

    我将MasVC.xib中TableCellView的类更改为“CustomCell”,然后在该单元格中删除两个标签。我还设置了一个标识符(“SetCell”)

    当我试图让IBOutlets将这些标签连接到我的CustomCell文件时,没有任何反应 - 我不能这样做。

    所以我将新对象放入MasVC.xib并将其类设置为CustomCell - >现在我可以建立这些联系。

    在viewForTableColumn中 (xxxx和yyyy仅用于测试目的):

    let cell: CustomCell = tableView.makeViewWithIdentifier("SetCell", owner: self) as! CustomCell
    cell.firstLabel.stringValue = "xxxx"
    cell.secondLabel.stringValue = "yyyy"
    return cell
    

    我启动了我的项目,将第一件事添加到我的桌子和kaboom。它突出了

    cell.firstLabel.stringValue = "xxxx" 
    

    并显示错误:

    fatal error: unexpectedly found nil while unwrapping an Optional value
    (lldb)
    

    我做错了什么?

    EDIT1

    它似乎根本没有创建那些标签,但为什么呢?

    enter image description here

    EDIT2

    enter image description here

    以上观点。

    我设法解决了它(可能不是最好的解决方案......) 正如我所提到的 - 我添加了一个对象并将其连接到类TwoLabelCell(而不是CustomCell)。这样我就可以将IBOutlets拖到TwoLabelCell文件中。然后,我必须通过拖动从两个标签单元格(显示在SetsColumn正下方的视图中显示的那些)(右侧面板上显示的那些)到实际标签的连接来连接我的标签和TableViewCell,标签现在看起来像这样: / p>

    enter image description here

    我现在有这样的警告:

    Unsupported Configuration: Outlet 'secondLabel' of 'Two Label Cell' is connected to 'Second Label,' an invalid destination (Object may be repeated at runtime.)
    

    但它确实有效。

0 个答案:

没有答案