2013-07-03 4 views
-1

Objective-c를 처음 접했고 일부 테스트 응용 프로그램을 빌드하려고합니다.목표 c 키보드 키를 눌렀을 때 배경색이 변함

내가 가지고있는 다음과 같은 방법

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
     //here i should put some code 
     return TRUE; 
} 

어떻게 내가 몇 가지 코드 내 키보드에있는 키를 누르면 인쇄하려면이 방법 내에서 작동 할 수 있습니까?

키 상태를 변경할 수 있습니까? 예를 들어, 배경색이나 문자 색상을 변경합니까?

미리 감사드립니다.

+0

사이드 노트 -이 메소드의 리턴 타입은'BOOL'입니다. 그러므로'TRUE'가 아니라'YES' 또는'NO'를 반환해야합니다. – rmaddy

답변

1

iOS에서 개별적인 키 입력을받을 수 없습니다. 모든 변경에 대해 shouldChangeCharactersInRange 메서드가 호출됩니다. 여기에는 키보드로 입력하는 사용자 또는 클립 보드에서 텍스트를 붙여 넣는 사용자가 포함됩니다.

시스템 키보드를 변경할 수있는 API가 없습니다. 사용자가 입력 할 때 키보드를 업데이트하려면 사용자 지정 키보드를 만들어 원하는대로 이벤트를 처리해야합니다.

+0

그리고 적어도 시스템 키보드의 모든 기능을 재현하지 않으면 시도하면 안됩니다. 뿐만 아니라 Apple이이 API를 열지 않으면 키보드가 앱 내에서만 작동합니다. (또는 jailbroken 전화). 마지막으로 일부 크로스 워드 앱에는 자체 키보드가 있지만 시스템 키보드 기능의 하위 집합 만 있으면되며 일부는 잘못 처리됩니다. – nielsbot

+0

rmaddy의 답변을 줄이려고 시도하지 않았습니다. – nielsbot

+0

@nielsbot 좋은 의견입니다. 나 자신의 키보드를 만드는 것은 매우 어렵다는 데 동의합니다. – rmaddy

0
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)aString 
  1. NSLog ("누름 편지 :"@, aString);
    // 키와 붙여 넣은 텍스트를 삭제하면 몇 가지 다른 경우에서 문제가 발생할 수 있습니다.
  2. 아니 당신이 영감을 시작할 머리를 제공 한 많은 사람들이있는 사용자 정의 키보드를 만들려면 당신이

서브 클래스하지 않는 한 당신은

  • 없음을 서브 클래스하지 않는 한. Google "custom ios keyboards"

  • +0

    사용자가 삭제 키를 누르거나 페이스트 보드의 텍스트를 붙여 넣습니다. – rmaddy

    +0

    당신이 말한 상황에서 인쇄 할 구체적인 "문자"키가 없기 때문에 키를 눌렀거나 텍스트를 붙이면 그가 찾고있는 것과 관련이 없습니다. 그러나 그가 그 정보를 찾고 있다면, 적어도, 그는 출발점을 가지고 있습니다. –

    +0

    당신이 지적한 것은 아직까지도 관련이 있습니다. 나는 그것에 동의합니다. –

    관련 문제