2017-10-29 3 views
1

NSAccessibilityRadioButton要素を作成しようとしていますが、予期しないエラーが発生しました。Swift 4のNSAccessibilityRadioButtonの実装

class AccessibilityElementPrototype: NSAccessibilityElement { 
    . 
    . 
    . 
} 
  • 私はこのようなNSAccessibilityRadioButtonプロトコルを実装する必要が別のクラス、持っている:

    class AccessibilityElementTab: AccessibilityElementPrototype, NSAccessibilityRadioButton { 
        func accessibilityValue() -> NSNumber? { 
         ... 
        } 
    } 
    
  • をここに私はNSAccessibilityElementの基本クラスを持って、私は

    1. をやっているものです

      問題は、次のエラーが発生していることです。

      Method 'accessibilityValue()' with Objective-C selector 'accessibilityValue' conflicts with method 'accessibilityValue()' from superclass 'NSAccessibilityElement' with the same Objective-C selector

      誰かがすでにこのような問題に遭遇して解決策がある場合は、分かち合いましょう。

    答えて

    0

    私はあなたが狂っていると思ったので、私はあなたにこれを尋ねて本当にうれしく思います。

    信じられないことに、NSAccessiblityプロトコルのいくつかがSwiftで壊れているようです。私はAppleにバグを開いたので、同じことをお勧めします。一方で、これを回避するのはかなり簡単で、不便です。

    あなたは直接、同じ結果を達成するためのNSViewのメソッドを使用することができます。

    view.setAccessibilityRole(...) 
    view.setAccessibilityElement(true) 
    
    @objc override func accessibilityValue() -> Any? { 
        ... 
    } 
    

    はtrueにaccessibiltyElementプロパティを設定することを忘れないでください。私はそれが最初に必要であることを理解しておらず、何も表示されていなかった理由を理解できませんでした。アクセシビリティインスペクタのショー無視された要素が私を助けました。

    +1

    これは信じられない.... 10x男。これがこれまでの唯一の解決策であるので、私は答えを正しいものとしてマークし、それを修正します;-) –

    関連する問題