【问题标题】:Xcode 6 interface builder does not show custom classXcode 6 界面生成器不显示自定义类
【发布时间】:2015-06-24 16:17:11
【问题描述】:

我的 Xcode 6.3 界面生成器出现错误。 当我创建一个新的自定义类并想要将其添加到界面生成器自定义类字段时。它不可用。我确实使用 Swift 作为语言。

我尝试了什么:

  • 删除派生数据
  • 重新安装 Xcode
  • 清理项目
  • 创建了新项目
  • 类名与文件名相同
  • 超类和接口生成器类是一样的

什么都没解决 ;-( 知道会是什么吗?

【问题讨论】:

  • 你确定类名和文件名一样吗?
  • 检查 TimerCVC 是否是 UIViewController 的子类以及文件是否添加为与您的 xib/storyboard 文件相同的目标成员
  • @milo526 如图所示,类名与文件名相同
  • @Duc 这是一个 UICollectionViewController ,是的,子类是需要的类型。正如您在添加的图片中看到的那样,它是正确目标的成员。
  • 您不是唯一遇到此错误的人。不幸的是,我从来没有打过它,所以我没有经验;而且我从未见过有关如何解决它的可靠解释。 - 我在您的第一个屏幕截图中注意到您依赖自动完成。如果你自己输入全名然后回车会怎样?

标签: ios xcode swift xcode6 interface-builder


【解决方案1】:

我遇到了同样的问题,并认为这是一个错误。但这是我的误会。

实际发生的是:

自定义类下拉列表仅显示作为当前选定对象类的子类的自定义类。

例如,如果我们在 xib 中有 imageview 对象,并且在选择它之后,当我们看到自定义类下拉列表时,它将仅显示继承自 UIImageView(子类)的自定义类。

我做错的是寻找那些作为 UIView 子类的自定义类。

在您的情况下,可能不是 100% 肯定会发生,因为您的 TimerCVC 是 UICollectionViewController 的子类而不是 UIViewController。

【讨论】:

  • 确实,我创建了一个子类ViewController 并具有TableViewDelegate 代码的类,但在IB 中,我拖了一个实际的TableViewController
【解决方案2】:

TimerCVC 不是 UIViewController 的子类

按 ctrl-n -> 在左侧面板上选择 iOS ->Source -> Cocoa Touch Class -> 从下拉菜单中选择 UIViewController -> 然后填写名称字段(自动 Xcode 自动完成,最后使用 ViewController)。

应该是这样的

import UIKit

class TimerViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

【讨论】:

  • 它是一个 UICollectionViewController 并且错误仍然在这里,添加 ViewController 而不是 VC 不会做出改变;-(
  • 试试这个窗口 -> Organizer (or Projects if is Xcode 6.3) -> 选择你的项目并在派生数据上点击删除 -> 重启 Xcode
猜你喜欢
  • 1970-01-01
  • 2017-03-03
  • 1970-01-01
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多