我一直在将我的代码迁移到Swift,现在我正在尝试通过切换到基于视图的表视图(OS X)来实现UI的现代化。使用基于单元格的tableview,提供可访问性标题等就像覆盖单元格上的func accessibilityTitle()
一样简单(它是NSTextFieldCell
的子类) - 但不幸的是,NSTableRowView
,这并不容易。
我已经覆盖了我能想到的所有内容,但VoiceOver仍然会读取“Table View Cell”而不是其他内容。被覆盖的方法甚至不会被调用。
我还覆盖了func isAccessibilityElement() -> Bool
,func isAccessibilitySelectorAllowed(selector: Selector) -> Bool
,func accessibilityIsAttributeSettable(attribute: String) -> Bool
以始终返回true。这些方法甚至都没有被调用。
我也试过让单元格符合NSAccessibilityStaticText
,但这在Swift中是不可能的,所以我尝试了一个黑客,覆盖conformsToProtocol(_:)
,但是从来没有被调用过。< / p>
我尝试过的另一件事是覆盖func respondsToSelector(_:)
来检查哪些选择器是运行时检查,但是没有任何帮助可以检查。
有没有人试图解决这个问题?我想要的只是为VoiceOver提供一个自定义字符串来读出......