4

By default, if you shake the iPhone while entering text in a UITextField, a little box will appear asking if you want to undo typing. How can I prevent this from happening? I looked through the UITextField, UITextFieldDelegate, and UITextInputTraits docs and found nothing relating to shaking.

Presumably I could subclass UITextField to ignore the shake event, but I'm not exactly confident in my ability to not screw other things up. I'd love something like

textField.respondsToShake = FALSE;

What's the best way to do this?

Jesse Beder
  • 30,017
  • 18
  • 97
  • 140

2 Answers2

14
[UIApplication sharedApplication].applicationSupportsShakeToEdit = NO;
Jesse Beder
  • 30,017
  • 18
  • 97
  • 140
Aaron Saunders
  • 31,625
  • 5
  • 54
  • 74
2

You could try to subclass UITextField and override canPerformAction:withSender: in such a way that it will disallow the undo: action. But then you lose undo both by shaking and through the context menu.

Stefan Arentz
  • 31,710
  • 8
  • 65
  • 87
  • Thanks! I didn't mention that I wasn't worried about removing undo entirely in application, and it looks like there's an easier way, but this is a nice answer that I'll probably use in the future. – Jesse Beder Sep 08 '10 at 00:48