Swift 4 中的 NSAccessibilityRadioButton 实现
NSAccessibilityRadioButton implementation in Swift 4
我正在尝试创建一个 NSAccessibilityRadioButton 元素,但我遇到了...比方说出现意外错误。这是我正在做的
我有一个基础 class 的 NSAccessibilityElement:
class AccessibilityElementPrototype: NSAccessibilityElement {
.
.
.
}
我有另一个 class,它应该像这样实现 NSAccessibilityRadioButton 协议:
class AccessibilityElementTab: AccessibilityElementPrototype, NSAccessibilityRadioButton {
func accessibilityValue() -> NSNumber? {
...
}
}
问题是我收到以下错误:
Method 'accessibilityValue()' with Objective-C selector 'accessibilityValue' conflicts with method 'accessibilityValue()' from superclass 'NSAccessibilityElement' with the same Objective-C selector
如果有人遇到过这样的问题并且有解决办法,请分享。
我真的很高兴你问这个问题,因为我以为我疯了。
令人难以置信的是,某些 NSAccessibility 协议似乎在 Swift 中被破坏了。我已经打开了 Apple 的 bug,我鼓励你也这样做。与此同时,解决这个问题相当容易,只是不方便。
您可以直接使用 NSView 方法实现相同的结果:
view.setAccessibilityRole(...)
view.setAccessibilityElement(true)
@objc override func accessibilityValue() -> Any? {
...
}
不要忘记将 accessibiltyElement 属性 设置为 true。起初我没有意识到这是必要的,也无法弄清楚为什么什么都没有出现。 Accessibility Inspector 的 Show Ignored Elements 帮助了我。
我正在尝试创建一个 NSAccessibilityRadioButton 元素,但我遇到了...比方说出现意外错误。这是我正在做的
我有一个基础 class 的 NSAccessibilityElement:
class AccessibilityElementPrototype: NSAccessibilityElement { . . . }
我有另一个 class,它应该像这样实现 NSAccessibilityRadioButton 协议:
class AccessibilityElementTab: AccessibilityElementPrototype, NSAccessibilityRadioButton { func accessibilityValue() -> NSNumber? { ... } }
问题是我收到以下错误:
Method 'accessibilityValue()' with Objective-C selector 'accessibilityValue' conflicts with method 'accessibilityValue()' from superclass 'NSAccessibilityElement' with the same Objective-C selector
如果有人遇到过这样的问题并且有解决办法,请分享。
我真的很高兴你问这个问题,因为我以为我疯了。
令人难以置信的是,某些 NSAccessibility 协议似乎在 Swift 中被破坏了。我已经打开了 Apple 的 bug,我鼓励你也这样做。与此同时,解决这个问题相当容易,只是不方便。
您可以直接使用 NSView 方法实现相同的结果:
view.setAccessibilityRole(...)
view.setAccessibilityElement(true)
@objc override func accessibilityValue() -> Any? {
...
}
不要忘记将 accessibiltyElement 属性 设置为 true。起初我没有意识到这是必要的,也无法弄清楚为什么什么都没有出现。 Accessibility Inspector 的 Show Ignored Elements 帮助了我。