 	public var enabled: Bool
 	public var action: String -> ()
 
+	/// If true then the input will always force its value to be `text` even 
+	// while the input is being edited. If false, it will only set the value to
+	/// `text` when the input isn't being edited.
+	public var forceValueWhileEditing: Bool
+
+	/// Should the input make itself the focus after it's been realized?
+	public var autofocus: Bool
+
 	internal let inputDelegate = InputDelegate()
-
-
 
 	public init(text: String? = nil, initialText: String? = nil, placeholder: String? = nil, enabled: Bool = true, autofocus: Bool = false, forceValueWhileEditing: Bool = false, action: String -> () = { _ in }) {
 		self.text = text

		self.placeholder = placeholder
		self.action = action
		self.enabled = enabled
		super.init(frame: CGRect(x: 0, y: 0, width: 100, height: 23))
		
		self.inputDelegate.action = { [unowned self] field in

			cell?.placeholderString = placeholder ?? ""

			if let text = text {
				let firstResponder: Bool
				if let firstResponderTextView = textField.window?.firstResponder as? NSTextView {
					firstResponder = firstResponderTextView.delegate === textField
				} else {
					firstResponder = false
				}

				if text != textField.stringValue && !firstResponder && !forceValueWhileEditing {
					textField.stringValue = text
				}
			}
