 
 		let frameInView = view.convertRect(frameInWindow, fromView: window)
 		return frameInView
+	}
+
+
+	public static func preload() {
+		guard !preloaded, let _window = UIApplication.sharedApplication().delegate?.window, let window = _window where window.firstResponder == nil else { // why the double optional???
+			return
+		}
+
+		preloaded = true
+
+		let input = UITextField(frame: .zero)
+		window.addSubview(input)
+
+		input.becomeFirstResponder()
+		input.resignFirstResponder()
+		input.removeFromSuperview()
 	}
 
 



	private static func didChangeFrameWithNotification(notification: NSNotification) {
		updateFromNotification(notification)

		eventBus.publish(Event.DidChangeFrame())



	private static func willHideWithNotification(notification: NSNotification) { // called after willChangeFrame
		preloaded = true

		updateFromNotification(notification)

		eventBus.publish(Event.WillHide())
