【问题标题】:Custom number pad on click sound implementation in Swift 3Swift 3 中点击声音实现的自定义数字键盘
【发布时间】:2018-11-22 13:55:24
【问题描述】:

我有使用 UICollectionView 制作的自定义数字键盘。我在 didSelectItemAt 方法中得到了按下的键值。每当调用 didSelectItemAt 方法时,我都想要键盘声音。它应该取决于用户的设备设置。

我已经参考了 Apple 开发人员文档,但我无法实现它。医生说:

要为输入点击启用自定义输入或附件视图,请执行 以下两个步骤: 1. 在您的输入视图类中采用 UIInputViewAudioFeedback 协议。 2.实现enableInputClicksWhenVisible委托方法返回true。

我尝试了以下方法:

  1. 创建了 CustomUICollectionView

class CustomUICollectionView: UICollectionView, UIInputViewAudioFeedback {
    var enableInputClicksWhenVisible: Bool {
        return true
     }
 }
  1. 在我显示数字键盘的控制器中声明了变量 numberPad。并在 didSelectItemAt 方法中调用 playInputClick。

@IBOutlet weak var numberPad: CustomUICollectionView!
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { UIDevice.current.playInputClick() }

【问题讨论】:

  • 使用相关代码更新您的问题。展示您实现点击的尝试。
  • @rmaddy 更新了我的问题。谢谢。

标签: ios swift swift3 uicollectionview custom-keyboard


【解决方案1】:
  1. 需要在符合UIInputViewAudioFeedback的视图类中调用playInputClick
  2. 符合UIInputViewAudioFeedback 并调用playInputClick 的类必须是文本字段或文本视图的活动inputView

重构您的代码以满足这些要求,然后单击即可工作。

【讨论】:

  • 尝试了以下代码,它不起作用。类 CustomView: UIView, UIInputViewAudioFeedback { var enableInputClicksWhenVisible: Bool{ UIDevice.current.playInputClick() return true } } 然后在控制器内部 textField.inputView = CustomView()
  • 你不能从enableInputClicksWhenVisible内部调用UIDevice.current.playInputClick()
  • 应该从哪里调用 UIDevice.current.playInputClick()
  • 需要发出点击声时调用。
猜你喜欢
  • 2012-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-29
  • 1970-01-01
  • 2018-05-28
  • 2015-07-09
  • 1970-01-01
相关资源
最近更新 更多