Objective c 当输入视图移动时,如何使画外音工作

Objective c 当输入视图移动时,如何使画外音工作,objective-c,ios,cocoa-touch,ipad,voiceover,Objective C,Ios,Cocoa Touch,Ipad,Voiceover,我有一个iPad应用程序,当点击按钮时,它会在UIPover中显示一个UIExtField。此按钮位于屏幕底部附近。因此,用户点击按钮,弹出框出现并成为第一响应者,这会导致键盘出现。这反过来会导致popover在键盘滑入时向上移动。除了画外,这个很好用 似乎画外音被移动的视图弄糊涂了。它开始描述新的文本字段,但一旦开始移动,就在单词中间停止 有人知道一个好的工作环境吗。到目前为止,我想到的最好的方法是听UIKeyboardDidShowNotification,然后找到一些方法来踢画外音,以便再

我有一个iPad应用程序,当点击按钮时,它会在UIPover中显示一个UIExtField。此按钮位于屏幕底部附近。因此,用户点击按钮,弹出框出现并成为第一响应者,这会导致键盘出现。这反过来会导致popover在键盘滑入时向上移动。除了画外,这个很好用

似乎画外音被移动的视图弄糊涂了。它开始描述新的文本字段,但一旦开始移动,就在单词中间停止


有人知道一个好的工作环境吗。到目前为止,我想到的最好的方法是听UIKeyboardDidShowNotification,然后找到一些方法来踢画外音,以便再次交谈,虽然我不知道如何启动VoiceOver。

您可以使用辅助功能通知通知VoiceOver屏幕布局的更改-UIAccessibilityLayoutChangedNotification或UIAccessibilityScreenChangedNotification是很好的选择

您可以使用辅助功能通知来通知VoiceOver屏幕布局的更改-UIAccessibilityLayoutChangedNotification或UIAccessibilityScreenChangedNotification是很好的选择

谢谢你指出这一点。不幸的是,如果画外音认为它只是说了那个,它似乎不会导致画外音告诉当前控件。我可以用这些把注意力转移到别的东西上,等它开始说话,然后再转回来,但这是一个相当糟糕的黑客行为。@c-我知道UIAccessibilityTraitupDatesFrequency特性会导致VoiceOver每隔几秒钟读取所选元素的标签,因为它会发生变化,例如秒表,但我不知道它是否也会更新该元素的帧。感谢您指出这一点。不幸的是,如果画外音认为它只是说了那个,它似乎不会导致画外音告诉当前控件。我可以用这些把注意力转移到别的东西上,等它开始说话,然后再转回来,但这是一个相当糟糕的黑客行为。@c-我知道UIAccessibilityTraitupDatesFrequency特性会导致VoiceOver每隔几秒钟读取所选元素的标签,因为它会发生变化,例如秒表,但我不知道它是否也会更新该元素的帧。我发现我在上调用becomeFirstResponder内容视图控制器的viewDidLoad方法中显示的文本字段。切换到调用becomeFirstResponder在ViewDidDisplay:方法中似乎解决了问题。对于类似的问题,这可能不是一个通用的解决方案,但对我来说是一个可行的解决方案。我发现我正在调用becomeFirstResponder来处理内容视图控制器的viewDidLoad方法中显示的文本字段。切换到调用becomeFirstResponder在ViewDidDisplay:方法中似乎解决了问题。这可能不是解决类似问题的一般方法,但对我来说是一个可行的解决办法。