title: UICollectionview in a keyboard extension
body: <p>I have tried to get a UICollectionview into my keyboard extension, which i made in swift. But i can´t get it to work. The keyboard just crashes on launch. Anyone know how to fix this? Or is it even possible to use a UICollectionview in a keyboard extension.</p>
  
  <p>class KeyboardViewController: UIInputViewController, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource{</p>
  
  <pre><code>@IBOutlet var nextKeyboardButton: UIButton!
  @IBOutlet var testButton: UIButton!
  
  var collectionView: UICollectionView!
  
  override func updateViewConstraints() {
      super.updateViewConstraints()
  
      // Add custom view sizing constraints here
  }
  
  override func viewDidLoad() {
      super.viewDidLoad()
  
      let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
      layout.sectionInset = UIEdgeInsets(top: 20, left: 10, bottom: 10, right: 10)
      layout.itemSize = CGSize(width: 10, height: 10)
  
      collectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout)
      collectionView.dataSource = self
      collectionView.delegate = self
      collectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: "Cell")
      collectionView.backgroundColor = UIColor.whiteColor()
      self.view.addSubview(collectionView)
  
  
      // Perform custom UI setup here
      self.nextKeyboardButton = UIButton(type: .System)
  
      self.nextKeyboardButton.setTitle(NSLocalizedString("Next Keyboard", comment: "Title for 'Next Keyboard' button"), forState: .Normal)
      self.nextKeyboardButton.sizeToFit()
      self.nextKeyboardButton.translatesAutoresizingMaskIntoConstraints = false
  
      self.nextKeyboardButton.addTarget(self, action: "advanceToNextInputMode", forControlEvents: .TouchUpInside)
  
      self.view.addSubview(self.nextKeyboardButton)
  
      let nextKeyboardButtonLeftSideConstraint = NSLayoutConstraint(item: self.nextKeyboardButton, attribute: .Left, relatedBy: .Equal, toItem: self.view, attribute: .Left, multiplier: 1.0, constant: 0.0)
      let nextKeyboardButtonBottomConstraint = NSLayoutConstraint(item: self.nextKeyboardButton, attribute: .Bottom, relatedBy: .Equal, toItem: self.view, attribute: .Bottom, multiplier: 1.0, constant: 0.0)
      self.view.addConstraints([nextKeyboardButtonLeftSideConstraint, nextKeyboardButtonBottomConstraint])
  
  }
  
  override func didReceiveMemoryWarning() {
      super.didReceiveMemoryWarning()
      // Dispose of any resources that can be recreated
  }
  
  override func textWillChange(textInput: UITextInput?) {
      // The app is about to change the document's contents. Perform any preparation here.
  }
  
  func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -&gt; Int {
      return 14
  }
  
  func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -&gt; UICollectionViewCell {
      let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath)
      cell.backgroundColor = UIColor.orangeColor()
      return cell
  }
  
  override func textDidChange(textInput: UITextInput?) {
      // The app has just changed the document's contents, the document context has been updated.
  
      var textColor: UIColor
      let proxy = self.textDocumentProxy
      if proxy.keyboardAppearance == UIKeyboardAppearance.Dark {
          textColor = UIColor.whiteColor()
      } else {
          textColor = UIColor.blackColor()
      }
      self.nextKeyboardButton.setTitleColor(textColor, forState: .Normal)
  }
  </code></pre>
  
  <p>}</p>