我正在尝试为VoiceOver用户创建一个inputAccessoryView和键盘模式,这样他们就不会迷路。设定:
view.accessibilityViewIsModal = YES;
textField.inputAccessoryView = view;
使键盘可见但不可用的视图模式 - 它在模态视图之外。
接下来我在键盘出现后尝试了这个:
textField.inputAccessoryView.superview.accessibilityViewIsModal = YES;
这似乎有些超出范围但几乎有效 - 但是B(N,M空格等)之后的物理键不可导航。
接下来是这个:
textField.inputAccessoryView.superview.superview.accessibilityViewIsModal = YES;
一切正常。那个观点,BTW记录如下:
<UITextEffectsWindow: 0x17170290; frame = (0 0; 320 568); opaque = NO; gestureRecognizers = <NSArray: 0x17170710>; layer = <UIWindowLayer: 0x17170430>>
我的问题是:我这是一个愚蠢的事情吗?看起来是这么回事。这合法吗? UITextEffectsWindow是私有的,但我实际上并没有使用它,只是利用它是一个视图的事实。
解决问题的任何输入或方法都会有所帮助。
答案 0 :(得分:0)
这不违法,但可以肯定它会在iOS的未来版本中停止工作。
例如,在iOS 6中,开发人员可以通过调用self.superview
从单元格到达其tableview。在iOS 7中,现在有一个私人视图。
您可能希望采用更加动态的方法,例如遍历视图层次结构,直到找到具有正确帧的视图,或者将所需的所有视图作为其子视图。类似的approach for the UITableViewCell problem can be found here。