自定义input视图作为Swift中使用OSX 10.9和Xcode 6.1.1 +的文本字段的键盘

加载自定义input视图键盘后,我无法连接button。 我的主屏幕是故事板,我的自定义视图是一个xib。

input视图是文件所有者指向它的swift类的一个笔尖。 我使用下面的代码在另一个视图控制器中加载input视图:

extension UIView { class func loadFromNibNamed(nibNamed: String, bundle : NSBundle? = nil) -> UIView? { return UINib( nibName: nibNamed, bundle: bundle ).instantiateWithOwner(nil, options: nil)[0] as? UIView } } 

在主视图控制器里面,我正在创buildinput视图:

 var myInputView = UIView.loadFromNibNamed("keypadInputViewController", bundle: nil) 

keypadInputViewController是xib的基名,swift文件和swift文件中的类名。

我附上这个键盘使用:

 self.widthBox.inputView = self.myInputView 

键盘视图然后打开作为一个普通的ios键盘打开

问题是,一旦我添加键盘连接器从键盘input控制器xib到它的迅速我会得到崩溃消息。 该消息特别引用了我创build的任何连接。 “这个类不是关键的编码密钥值”

xib包含一个十几个button的视图。

我已经仔细检查了一些项目,包括:

  • 文件所有者被设置为keypadInputViewController
  • 在Xcode中运行干净
  • 在iOS模拟器中运行重置
  • 在库中手动删除派生文件
  • 删除引用并重新添加xib和swift文件到项目中
  • 在文件所有者和视图部分删除了xib到swift的所有连接
  • closures并重新打开Xcode
  • 尝试了Xcode 6.2的beta 4
  • 我打开xcode并创build了一个testingios项目,添加了一个cocoa触摸类,并使用了创buildxibcheckbox。 一旦添加button连接,testing项目就会失败,并出现相同的错误。

search了很长时间后,我发现不把自己设置为自己不会允许button连接function。 所以我把扩展名改为:

 extension UIView { class func loadFromNibNamed(nibNamed: String, bundle : NSBundle? = nil) -> UIView? { return UINib( nibName: nibNamed, bundle: bundle ).instantiateWithOwner(self, options: nil)[0] as? UIView }} 

我仍然无法将视图设置为文件所有者。 应用程序在编译时崩溃,如果连接了一个sockets,或者在button按下时,如果连接了一个动作,错误为“无法识别的select器发送到类”

我不知道这是我还是Xcode。 我怎样才能让这个键盘视图接受连接,所以我可以继续前进? 我想也许我没有添加一些重要的类定义或不正确加载这个xib。 想法?