2017-12-12 13 views
0

マウスのクリック座標を取得して線を描く方法について調べます。私は2つのクリック(1番目と2番目のドット)を作りたいと思います。MacOSでSwiftを使用してマウスのクリック座標を取得するにはどうすればよいですか?

私は多くのコードを分析しましたが、巨大です(たとえば、私はこのように好きですhttps://stackoverflow.com/a/47496766/9058168)。

スウィフトの描画線は難しくありません。数字の座標の代わりにマウスクリックの座標を持つ別の変数をタイプすることができますか(下のコードを見てください)?あなたの答えが真であれば、それをコード化する方法は?私を助けてください、それをより簡単にしてください。

import Cocoa 

class DrawLine: NSView { 
    override func draw(_ dirtyRect: NSRect) { 
    NSBezierPath.strokeLine(from: CGPoint(x: 20, y: 20), to: CGPoint(x: 0, y: 100)) 
    } 
} 

答えて

0

マウスのダウンイベントをリッスンし、それを使用して開始位置と終了位置を設定してパスを描画します。

import Cocoa 

class DrawLine: NSView { 
    var startPoint:NSPoint? 
    var endPoint:NSPoint? 
    override func mouseDown(with event: NSEvent){ 
     if startPoint == nil || self.endPoint != nil{ 
      self.startPoint = event.locationInWindow 
     } else { 
      self.endPoint = event.locationInWindow 
      self.needsDisplay = true 
     } 
    } 
    override func draw(_ dirtyRect: NSRect) { 
     if let theStart = startPoint, let theEnd = endPoint{ 
      NSBezierPath.strokeLine(from: theStart, to: theEnd) 
     } 
    } 
} 
+0

@LeoDabus「ユーザーは何が起こっているのかわかりません」とはどういう意味ですか?ユーザーはどんな指示を必要としますか? –

+0

これはユーザーエクスペリエンスの問題です。解決策または質問とは関係ありません。 –

+1

コードは実行されていますが、線を描くことはできません。私は2回クリックするだけで、その行は表示されません。たぶん私は何か間違っています。 –

関連する問題