2012-01-02 1 views
4

밤에 주로 사용하는 범용 앱을 쓰고 있습니다. 키보드를 표시해야하지만 키보드의 밝은 색상이 사용자의 눈을 멀게하거나 야간 시력을 상하게하는 것을 원하지는 않습니다. 나는 사용자 정의 키보드를 만드는 데 어려움을 겪고 싶지 않아서 키보드 위에 UIView를 배치하고 0.5의 알파 또는 검정색 배경색을주는 해결책이있을 것이라고 생각했지만, 키보드를 가리는 UIView를 얻는 방법. 누구든지이 작업을 수행하는 방법을 알고 있습니까? 애플은 이것을 허용합니까?iPhone/iPad 키보드 조율

답변

6

키보드가 나타날 때 추가되는 새 창 하위보기로 발견됩니다. 그것은 약간 해키하고 깨지기 쉽다. (이전에 바뀌었던 새로운 iOS 버전에서 점검 할 필요가있다.)하지만 작동하고 허용된다. (나는 앱 스토어에있는 앱에서 야간 모드에 대해 정확히 이것을한다) .

UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1]; // This assumes you aren't adding any new windows yourself 

for(UIView *keyboard in tempWindow.subviews) 
{ 
    if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES) // This was different in an earlier version of iOS, and may well change again in the future! 
    { 
     [keyboard addSubview:maskView]; 
     break; 
    } 
} 

이 작업은 UIKeyboardDidShowNotification 개체에 응답하는 방법으로 수행됩니다. 나는 iPad에서 그것을 시도하지 않았다, 이것은 아이폰 코드입니다.

마스크보기는 검은 배경과 투명성이있는 단순한보기입니다. 키 사이에 검은 색 공간을 제공하는 경고 키보드 스타일을 사용할 수도 있습니다.

이 방법은 불행히도 작은 키 깜박임 (키를 탭하면 튀어 나오는 큰 키)이 최대 밝기가되는 것을 막지 못합니다.

+0

이 또한 iPad에서 작동하는지 확인할 수 있습니다! 감사! – Vic320

+0

그러나 iPad에서 키보드를 분리하면 올바르게 작동하지 않습니다. 나는 2 UIView를 만들 필요가 있다고 생각한다. 키보드의 각 반에 하나씩 ... – Vic320

+0

좋은 점 - 내가 iPad에서 이것을하지 않았으므로 나는 그것을 알아 차리지 못했다고 말했다. 소개되는 분할 키보드와 같은 물건은 이것이 왜 이렇게 성취하기 쉬운지 이유입니다. – jrturton

0

UITextFiled/UITextArea (사용중인 것)의 inputView 속성에서 필요한 변경을 적용 해보십시오.

+0

고마워요.하지만 작동하지 않습니다 ... – Vic320