I would like to differentiate between changing the text programmatically
(for example in a button click handler event) and user input (typing,
cutting and pasting text). <
I had this problem too, but for my case it was enough to listen to the (Preview)TextInput event instead of using Meleak's rather complex solution. I realize that's not a complete solution if you have to listen for programmatic changes aswell, but in my case it worked fine.