我无法把头转过来 – (void)playInputClick;
我有一个UITextField设置的inputAccessoryView,它是在需要的时候从XIB加载(与Apple的KeyboardAccessory示例完全一样)。
我试图让button上点击时使用playInputClick函数按下,但我不知道如何。 苹果文档说,我需要添加一个委托方法的视图,但该视图纯粹是在界面生成器创build的,所以我不明白我能做到这一点。
有谁知道如何使这项工作? 在互联网上的任何地方似乎都没有使用这种方法的示例代码。
我一直有同样的问题,最后搞清楚了。
如果您在UIViewController中实现协议,则不起作用。 它需要在UIView子类中实现。
所以为了使它工作,我用界面控制器在界面生成器中创build了一个视图。 然后我添加了另一个类,它是UIView的子类。 这个类实现了UIInputViewAudioFeedback协议。 然后在界面生成器中,我去了我的视图的身份检查器,并将类更改为我的UIView子类实现UIInputViewAudioFeedback协议。 键盘咔嗒声现在正在工作。
我的视图控制器仍在调用[[UIDevice currentDevice] playInputClick]
,我所做的只是将UIInputViewAudioFeedback协议的代码移动到UIView子类,并将我的视图类设置为我的UIView子类。
假设你正在尝试在inputAccessoryView中做到这一点:
在.h
文件中,指出您实现了UIInputViewAudioFeedback
@interface YourAcessoryView : UIView <UIInputViewAudioFeedback>
在.m
文件中,添加此方法以满足协议
- (BOOL)enableInputClicksWhenVisible { return YES; }
当按下button时,请执行以下操作:
- (void)buttonPressed:(UIButton*)sender { [[UIDevice currentDevice] playInputClick]; // do more stuff }
您需要实现一个视图控制器类,然后在界面生成器中将文件的所有者作为这个类来分配。 将视图控制器的视图连接到您的视图。
一旦你完成了,你可以在视图控制器中实现委托。 它非常简单直接。 基本上你的视图将是一个视图控制器类的成员。