2017-12-12 38 views
0

줄을 그리기 위해 마우스 클릭 좌표를 얻는 방법을 알아 봅니다. 두 번의 클릭 (첫 번째와 두 번째 점)을 만들고 싶습니다.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

코드가 실행 중이지만 줄을 그릴 수 없습니다. 두 번 클릭하면 라인이 나타나지 않습니다. 어쩌면 내가 잘못한 것을했을 수도 있습니다. –