无法让 playInputClick 工作

Posted

技术标签:

【中文标题】无法让 playInputClick 工作【英文标题】:Can't get playInputClick working 【发布时间】:2014-12-26 22:25:39 【问题描述】:

我阅读了很多关于播放键盘点击的文档和主题,但我无法让它在我的应用程序中工作......

我设计了一个自定义键盘(作为 UIView 子视图),采用 UIInputViewAudioFeedback 协议,enableInputClicksWhenVisible 方法返回 YES。

但是当我打电话给[[UIDevice currentDevice] playInputClick] 时,什么也没有发生(而当我使用默认键盘时我能听到咔哒声)。

在 Apple UIKit 框架参考中,它写道它应该“仅当输入视图本身启用且可见时”才能工作。我的视图显然是可见的,即使我将超类从 UIView 更改为 UIControl,并设置 self.enabled = YES,它也不起作用...

我看到了很多像AudioservicesPlaySystemSound(1104); 这样的解决方案,但我什至没有尝试过,因为如果用户在设置中禁用了键盘点击,我不想播放点击。

为什么“官方”解决方案不起作用?它似乎在 iOS 8 中并没有被弃用...

非常感谢

托马斯

【问题讨论】:

【参考方案1】:

您是否采用了 UIInputViewAudioFeedback 协议并覆盖了 enableInputClicksWhenVisible?

要为输入点击启用自定义输入或附件视图, 执行以下两个步骤:

1) 在您的输入视图类中采用 UIInputViewAudioFeedback 协议。

2) 实现 enableInputClicksWhenVisible 委托方法返回 真的。

https://developer.apple.com/documentation/uikit/uidevice/1620050-playinputclick

【讨论】:

以上是关于无法让 playInputClick 工作的主要内容,如果未能解决你的问题,请参考以下文章

我无法让我的 javascript 函数工作?

无法让 setBackgroundMessageHandler 工作

无法让 Groovy 扩展模块工作

无法让 UITableViewAutomaticDimension 正常工作

我无法让 Netbeans C++ 工作,我做错了啥?

无法让 didSelectRowAt 为 TableView 工作