UIButton의 하위 클래스를 만들고 있는데 터치를 가로 채려고하는 이유는 '누르기'또는 '프레스 종료'이벤트를 수신 할 다른 방법을 찾는 것 같습니다. tvOS의 표준 UIButton입니다. 그렇게 할 수있는 방법을 찾을 수 있다면 아래의 해결책을 고민 할 필요가 없습니다.tvOS : pressesEnded가 간헐적으로 호출됩니다.
pressesEnded(_ presses: Set<UIPress>, with event: UIPressesEvent?)
Apple TV 리모컨의 '선택'버튼을 누를 때마다 전화가 걸리지 않는 것처럼 보입니다.
pressesBegan(_ presses: Set<UIPress>, with event: UIPressesEvent?)
은 매번 문제없이 호출됩니다. 아래 코드를 첨부했습니다. 어떤 아이디어가이 문제를 일으킬 수 있습니까?
class EVLPTZButton: UIButton
{
var command: PTZCommand!
var delegate: EVLPTZButtonCommandDelegate?
override func pressesBegan(_ presses: Set<UIPress>, with event: UIPressesEvent?)
{
super.pressesBegan(presses, with: event)
delegate?.ptzButton(pressesBeganFor: self, with: command)
}
override func pressesEnded(_ presses: Set<UIPress>, with event: UIPressesEvent?)
{
super.pressesEnded(presses, with: event)
delegate?.ptzButton(pressesEndedFor: self)
}
}
왜 버튼에 대한 프레스 이벤트가 필요한지에 대해 설명 할 수 있습니까? 버튼을 눌렀을 때를 알고 싶다면'addTarget (_ : action : for :)'메서드를 사용하여'.primaryActionTriggered' 이벤트에 대한 코드를 등록 할 수 있습니다. –
버튼의 초점 및/또는 강조 표시된 상태를 더 성공적으로 볼 수 있습니다. – picciano