5

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
  • 33,081
  • 21
  • 109
  • 146

2 Answers2

15
[UIApplication sharedApplication].applicationSupportsShakeToEdit = NO;
Jesse Beder
  • 33,081
  • 21
  • 109
  • 146
Aaron Saunders
  • 33,180
  • 5
  • 60
  • 80
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
  • 34,311
  • 8
  • 67
  • 88
  • 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