差分

ナビゲーションに移動 検索に移動

Xamarin.Mac/NSViewControllerからNSWindowを取得する

1,326 バイト追加, 2017年6月19日 (月) 02:30
ページの作成:「NSViewControllerの直下プロパティにNSWindowを取れそうなものがない。 ググった結果、Viewプロパティ経由で取得できるようだ。 た...」
NSViewControllerの直下プロパティにNSWindowを取れそうなものがない。
ググった結果、Viewプロパティ経由で取得できるようだ。
たぶん誰もがNSViewController直下のどこかにプロパティがあるだろうと探し回ることであろう。

NSViewController.View.Window

試しにマウスクリックでウインドウを移動してみる。
<source lang="csharp">
using System;

using AppKit;
using Foundation;
using CoreGraphics;

namespace MouseEvents
{
public partial class ViewController : NSViewController
{
// 〜〜〜 中略 〜〜〜

public override void MouseDown(NSEvent theEvent)
{
base.MouseDown(theEvent);

// NSWindowを取得する
var window = this.View.Window;

// ウインドウを左上に移動
var frame = new CGRect(0, 0, window.Frame.Width, window.Frame.Height);
this.View.Window.SetFrame(frame, display: true);
}
}
}
</source>

== 関連項目 ==
* [[Xamarin.Mac/NSViewの座標系を左下原点から左上原点に変更する]]
* [[Xamarin.Mac/ウインドウ座標をビュー座標に変換する]]
* [[Xamarin.Mac/マウスの移動を検出する]]

== 参考文献 ==
{{reflist}}

{{stub}}

[[category: Xamarin.Mac]]
匿名利用者

案内メニュー