2017-02-10 7 views
1

isEnabledフラグがviewDidLoadに設定されているカスタムNSViewがありますが、isEnabledが正しく設定されていて、正しいコードがカスタムのdrawRectで呼び出されていても0.5アルファで表示されませんビュー。NSViewのviewDidLoadのアルファベットが表示されない

同じビューコントローラー内のテキストフィールドをクリックすると、ビューのアルファが変更されます。ここで

は遅すぎるレンダリングプロセスにおいて一般 drawRectにアルファを設定するのdrawRect

 // is the view enabled? 
    if isEnabled { 

     // alpha should be full (opaque) 
     self.alphaValue = 1.0 

    } else { 

     // make the view slightly transparent 
     self.alphaValue = 0.5 
    } 
+0

あなたはスターです、ありがとうございます。私はすでに 'needsDisplay'を設定していた' didSet'をすでに持っていたので、私はそれを変更して完全に動作しました。 'drawRect'ではアルファが適切に処理されないことに気付かなかったのです。 – DanM

答えて

1

によって呼び出されるコードここ

 forceOutput.isEnabled = true 

とのviewDidLoad

に呼び出されるコードされています。アルファ設定の場合は、 drawRectが呼び出される前に行ってください。おそらく viewDidLoadにアルファベットを設定します。または、アルファを設定する isEnabledプロパティの場合は didSetにしてください。しかし、 drawRect、それ自体でそれをしないでください。

関連する問題