「Xamarin.MacのNSViewでMouseMovedイベントなどを発生させる」の版間の差分
編集の要約なし |
imported>Administrator 細 Administrator がページ「Xamarin.Mac/マウスの移動を検出する」を「Xamarin.MacのNSViewでMouseMovedイベントなどを発生させる」に移動しました |
||
| (同じ利用者による、間の2版が非表示) | |||
| 24行目: | 24行目: | ||
</source> | </source> | ||
これらのイベントが発動するようにするにはNSViewのUpdateTrackingAreasメソッドをオーバーライドして、AddTrackingAreaメソッドで事前に「どの範囲で取るか」を明示的に指定をする。 | |||
<source lang="csharp"> | <source lang="csharp"> | ||
void | NSTrackingArea _trackingArea; | ||
public override void UpdateTrackingAreas() | |||
{ | { | ||
if (_trackingArea != null) | |||
{ | |||
this.RemoveTrackingArea(_trackingArea); | |||
} | |||
_trackingArea = new NSTrackingArea( | |||
rect: this.Bounds, | |||
options: NSTrackingAreaOptions.ActiveAlways | | options: NSTrackingAreaOptions.ActiveAlways | | ||
NSTrackingAreaOptions.InVisibleRect | | NSTrackingAreaOptions.InVisibleRect | | ||
NSTrackingAreaOptions.MouseEnteredAndExited | | NSTrackingAreaOptions.MouseEnteredAndExited | | ||
NSTrackingAreaOptions.MouseMoved, | NSTrackingAreaOptions.MouseMoved, | ||
owner: this, | |||
userInfo: null); | |||
this.AddTrackingArea( | this.AddTrackingArea(_trackingArea); | ||
base.UpdateTrackingAreas(); | |||
} | } | ||
</source> | </source> | ||