Vanilla: make EditText arrow-savvy

I made a small subclass of EditBox:

GSSteppingTextField = objc.lookUpClass("GSSteppingTextField")
class ArrowEditText (EditText):
	nsTextFieldClass = GSSteppingTextField
	
	def _setCallback(self, callback):
		super(ArrowEditText, self)._setCallback(callback)
		if callback is not None and self._continuous:
			self._nsObject.setContinuous_(True)
			self._nsObject.setAction_(self._target.action_)
			self._nsObject.setTarget_(self._target)

then you can use it like this:

class EditTextDemo():
	def __init__(self):
		self.w = Window((100, 42))
		self.w.editText = ArrowEditText((10, 10, -10, 22), callback=self.editTextCallback, continuous=True)
		self.w.open()

	def editTextCallback(self, sender):
		print "text entry!", sender.get()

EditTextDemo()
7 Likes