 		field.editable = true
 		field.stringValue = _text ?? initialText ?? ""
 		field.delegate = inputDelegate
+
+		let cell = field.cell() as? NSTextFieldCell
+		cell?.placeholderString = placeholder ?? ""
+
 		textField = field
 		
 		super.realize(parentView)

	
	private var _text: String?
	private var initialText: String?
	private var action: String -> ()

	private let inputDelegate = InputDelegate()

	public convenience init(text: String?, fn: String -> ()) {
		self.init(text: text, initialText: nil, action: fn)
	}

	public convenience init(initialText: String?, fn: String -> ()) {
		self.init(text: nil, initialText: initialText, action: fn)
	}

	public init(text: String?, initialText: String?, action: String -> ()) {
		self._text = text
		self.initialText = initialText
		self.action = action
		super.init()
		

		let otherInput = other as Input
		textField = otherInput.textField
		textField?.delegate = inputDelegate

		let cell = textField?.cell() as? NSTextFieldCell
		cell?.placeholderString = placeholder ?? ""

		if let text = _text {
			if let otherText = otherInput._text {
