Swift OS X NSTouch Фаза rawInput в строку?

Не могу распечатать строковое значение фазы касания, пробовал это:

let phase = NSTouch.Phase(rawValue: touch.phase.rawValue)            
print(phase)

let touches = event.touches(matching: NSTouch.Phase.ended, in: self.view)
touches.forEach { (touch) in
   print(" touch up \(touch.phase)")
}

Выход я получаю это

Phase(rawValue: 8)
﹣ touch up Phase(rawValue: 8)

1 ответ

Не очень хороший способ обойти это:

print("Began", String(describing: NSTouch.Phase.began))
print("Ended", String(describing: NSTouch.Phase.ended))
print("Moved", String(describing: NSTouch.Phase.moved))
print("Stationary", String(describing: NSTouch.Phase.stationary))
print("Touching", String(describing: NSTouch.Phase.touching))
print("Cancelled", String(describing: NSTouch.Phase.cancelled))

Результаты помогли Произошло это:

let phases = [
            "1":"Began",
            "2":"Moved",
            "4":"Stationary",
            "7":"Touching",
            "8":"Ending",
            "16":"Cancelled"
]

let phase = phases["\(touch.phase.rawValue)"]
print(" Finger touch down \(phase)")
Другие вопросы по тегам