「Xamarin.Mac/NSViewControllerからNSWindowを取得する」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「NSViewControllerの直下プロパティにNSWindowを取れそうなものがない。 ググった結果、Viewプロパティ経由で取得できるようだ。 た...」) |
|||
26行目: | 26行目: | ||
var window = this.View.Window; | var window = this.View.Window; | ||
− | // | + | // ウインドウを左下に移動(Cocoaの座標系は左下が原点) |
var frame = new CGRect(0, 0, window.Frame.Width, window.Frame.Height); | var frame = new CGRect(0, 0, window.Frame.Width, window.Frame.Height); | ||
this.View.Window.SetFrame(frame, display: true); | this.View.Window.SetFrame(frame, display: true); |
2017年6月19日 (月) 02:43時点における最新版
NSViewControllerの直下プロパティにNSWindowを取れそうなものがない。 ググった結果、Viewプロパティ経由で取得できるようだ。 たぶん誰もがNSViewController直下のどこかにプロパティがあるだろうと探し回ることであろう。
NSViewController.View.Window
試しにマウスクリックでウインドウを移動してみる。
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;
// ウインドウを左下に移動(Cocoaの座標系は左下が原点)
var frame = new CGRect(0, 0, window.Frame.Width, window.Frame.Height);
this.View.Window.SetFrame(frame, display: true);
}
}
}