私はすべてのコンテンツが読み込まれている間の相互作用をブロックするウィンドウのコンテンツの上に配置したいカスタムNSView
を作成しました。私が抱えていた問題は、今では修正されているが、私は以下のコントロールにNSView
をクリックすることができたということです。新しい問題は、私がコントロールをクリックすることができなくても、マウスをテキストコントロールの上に移動すると、マウスがI Beamアイコンに切り替わるということです。Xamarin Macでマウスのバブルをブロックする
どのようにして、NSViewはその下のすべての相互作用を完全にブロックしますか?
私が作成したのNSViewは以下の通りです:
[Register("StupidView")]
public class StupidView : NSView
{
public StupidView()
{
// Init
Initialize();
}
public StupidView(IntPtr handle) : base (handle)
{
// Init
Initialize();
}
[Export("initWithFrame:")]
public StupidView(CGRect frameRect) : base(frameRect) {
// Init
Initialize();
}
private void Initialize()
{
this.AcceptsTouchEvents = true;
this.WantsLayer = true;
this.LayerContentsRedrawPolicy = NSViewLayerContentsRedrawPolicy.OnSetNeedsDisplay;
}
public override void DrawRect(CGRect dirtyRect)
{
var ctx = NSGraphicsContext.CurrentContext.GraphicsPort;
ctx.SetFillColor(new CGColor(128, 128, 128, 0.7f));
ctx.FillRect(dirtyRect);
}
public override void MouseDown(NSEvent theEvent)
{
if (Hidden)
{
base.MouseDown(theEvent);
}
}
public override void MouseDragged(NSEvent theEvent)
{
if (Hidden)
{
base.MouseDragged(theEvent);
}
}
public override bool AcceptsFirstResponder()
{
return !this.Hidden;
}
public override bool AcceptsFirstMouse(NSEvent theEvent)
{
return !this.Hidden;
}
public override NSView HitTest(CGPoint aPoint)
{
return Hidden ? null : this;
}
}
追跡エリアはIビームの問題に亀裂、ありがとう – bizzehdee