Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

I can't get my head round - (void)playInputClick;

I have an inputAccessoryView for a UITextField set up, which is loaded from a XIB when needed (in the exact same way as Apple's KeyboardAccessory example).

I'm trying to get the buttons on it to click when pressed using the playInputClick function but I can't work out how. The Apple documentation says that I need to add add a delegate method to the view, but the view was created purely in interface builder so I don't see how I can do this.

Does anyone know how to make this work? There seems to be no example code of this method being used anywhere on the internet.

like image 222
Ben Ward Avatar asked Jul 29 '11 11:07

Ben Ward


1 Answers

I've been having the same problem and finally figured it out.

If you implement the protocol in a UIViewController it does not work. It needs to be implemented in a UIView subclass.

So to get it working, I created a view in interface builder with a view controller. Then I added another class which is a subclass of UIView. This class implements the UIInputViewAudioFeedback protocol. Then in interface builder I went to the Identity inspector of my view and changed the class to my UIView subclass which implements the UIInputViewAudioFeedback protocol. And the keyboard click sound is now working.

My view controller is still calling the [[UIDevice currentDevice] playInputClick], all I did was move the code for the UIInputViewAudioFeedback protocol into a UIView Subclass and set my views class to my UIView sublass.

like image 172
Craig Mellon Avatar answered Sep 27 '22 17:09

Craig Mellon