2011-07-06 2 views
8

현재 UIKeyinput을 사용하고 있지만 오랫동안 삭제 키를 누르고 있어도 하나의 delteBackward 이벤트 만 보내고 있습니다. 오랫동안 삭제를 누른 상태에서 여러 이벤트 호출을 보내도록하려면 어떻게해야합니까?UIKeyInput을 반복 deleteBackwards 호출을 만드는 방법

+0

가이 문제를 어디나요 IDZ,이 당신이 찾고 있던 답이 아니라는 것을 알고,하지만 난 그게 도움이 되었으면 좋겠? –

답변

3

시스템 키보드에서 자동 반복을 수행하는 쉬운 방법은 없습니다.

키보드에서 오버레이를 사용하여 그것을
  1. 가짜 (@ pho0에 의해 주석 참조)
  2. 는 사용자 정의 키보드를 구현보기 또는 뷰 컨트롤러의 inputView로 설치 :이 두 가지 옵션을 남긴다 자동 반복을 지원하는 맞춤 프로토콜을 구현하십시오. 당신은 자동 반복으로 삭제 키가 필요합니다,하지만 당신은 모든 키가 필요한 경우 오버레이 코드는 사용자 정의 키보드 옵션과 같은 복잡한하게 자동 반복 잘 경우

해결 한 작품. (오버레이는 각 키에 대해 사각형을 필요로하므로 밑받침 키보드를 바꾸지 않는 것이 좋습니다).

해결책 2에는 일정량의 "선행"작업이 포함됩니다.이 작업을 수행하는 한 가지 방법은 키 캡 클래스 (물리적 키와 같은)와 키보드 레이아웃 클래스를 정의하는 것입니다.

내가 작업 한 프로젝트에서 두 가지 솔루션을 모두 구현했지만 현재 내가 좋아하는 키보드를 만들 수 있으므로 솔루션 2를 사용합니다. 간단한 경우에는 시스템 키보드가 아니라는 것을 결코 알 필요가 없습니다. 고급 사용자의 경우 키보드를 사용자 정의 할 수 있습니다.

가치가있는 부분에 대해 키보드 클래스를 바보로 만드는 것이 유용하다는 것을 알았습니다. 키가 다운 상태로 전환되었거나 업 상태로 전환되었음을 전달합니다. 위의 추가 클래스는 취해야 할 조치를 결정합니다. 어떤면에서

+0

솔루션 2 코드를 게시 하시겠습니까? 감사합니다 –

+0

@ tommy7xp 죄송합니다 코드를 게시 할 자유가 없습니다. – idz

3

내가 본 사람들 중 한 가지는 키보드 버튼 위에 가짜 버튼을 넣는 것입니다. 누군가가 그것을 누르고있을 때 타이머가 발동 할 때마다 마지막 문자를 지우도록하십시오.

희망이 도움이됩니다.

관련 문제