【问题标题】:Dismiss a UIKeyboardTypeNumberPad in a UITextField when VoiceOver is active?当 VoiceOver 处于活动状态时,关闭 UITextField 中的 UIKeyboardTypeNumberPad?
【发布时间】:2015-06-17 02:26:23
【问题描述】:

如何关闭键盘类型为UIKeyboardTypeNumberPadUITextField?接受this question 的答案建议添加一个带有关闭按钮的栏作为inputAccessoryView 或在背景上收听触摸事件。

我更喜欢第二种方法,即在包含UITextField 的视图上监听触摸事件。但是,如果 VoiceOver 处于活动状态,此方法将失败。在那种情况下你怎么resignFirstResponder

【问题讨论】:

    标签: ios uitextfield voiceover uikeyboardtype


    【解决方案1】:

    您需要另一种方式来执行该手势。您必须在布局中添加一个按钮。对不起……

    您应该能够检查 VoiceOver 是否打开。

    BOOL UIAccessibilityIsVoiceOverRunning();
    

    您还可以考虑将点击识别器添加到不可见的 UI 元素或完全被其他元素覆盖的父视图。这样,它就只能由 VoiceOver 用户激活。

    【讨论】:

    • JFI:我想我会选择不可见的 UI 元素方法。关于您的措辞的小建议:我需要添加一个 UI 元素,而不是使用点击识别器,而是覆盖 accessibilityActivate。另外,我需要使用您建议的方法和收听通知UIAccessibilityVoiceOverStatusChanged。不幸的是,这似乎有点复杂,但你的回答证实我没有微不足道的疏忽......
    猜你喜欢
    • 1970-01-01
    • 2019-09-28
    • 2011-09-19
    • 2020-01-11
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 2019-09-16
    • 2013-09-12
    相关资源
    最近更新 更多