「Xamarin.MacのNSViewでMouseMovedイベントなどを発生させる」の版間の差分
編集の要約なし |
imported>Administrator 編集の要約なし |
||
| 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.ActiveWhenFirstResponder | NSTrackingAreaOptions.MouseMoved, | |||
owner: this, | |||
this.AddTrackingArea( | userInfo: null); | ||
this.AddTrackingArea(_trackingArea); | |||
base.UpdateTrackingAreas(); | |||
} | } | ||
</source> | </source> | ||