這可能很明顯,但我從來沒有做過NSAccessibility的任何工作,所以我假設我所要求的是我忽略的一些簡單內容。NSTextField輔助功能 - 如何爲配音提供替代文本
我有一個NSTextField顯示這樣的持續時間,15:39。該文本字段是基於視圖的NSTableView中NSTableCellView的子視圖。
當VoiceOver啓用時,它當前會讀取「一個五,三個九」,這看起來完全沒用。相反,我想讓它說「持續時間是15分39秒」。
我可以產生所需的字符串,但我不知道我必須設置哪些可訪問性屬性來實現此目的。
我已經嘗試在IB中設置輔助功能描述,它沒有任何作用(無論是將它設置在NSTextField還是NSTextFieldCell上)。
我也試着重寫accessibilityValue:爲了提供自定義屬性值:
- NSAccessibilityNumberOfCharactersAttribute
- NSAccessibilityStringForRangeParameterizedAttribute
- NSAccessibilityAttributedStringForRangeParameterizedAttribute
- NSAccessibilityStrin和accessibilityAttributeValue:forParameter gForRangeParameterizedAttribute。
這似乎是在正確的軌道,因爲,它讓我代替什麼是大聲的聲音了,但是閱讀,提供任何NSRange爲NSAccessibilityVisibleCharacterRangeAttribute不匹配「15:39」字符串的長度在讀取NSTableCellView的內容時導致語音完全跳過此字段。所以,我所能做的最好的事情就是讓Voice過來說「Durat」,而不是閱讀「15:39」:(
我試過的一切,我試過NSTextField和NSTextFieldCell。
理想情況下,我更願意做什麼,我會在iOS版和剛剛成立的NSTableCellView的accessibilityLabel,但我看到了AppKit這樣做的合理途徑。希望我只是失去了一些東西。
雖然有效,但這種方法不必要的複雜。請參閱Quinn對簡單解決方案的評論。 – 2016-06-15 09:50:21