오늘 문득 iOS 키보드 표면위에 뷰를 하나 얹을 수 없을까 하는 의문이 들었습니다.
몇 번 시도해보다 안되나 싶어 포기하고 있는데
페친인 강명수님 (https://www.facebook.com/montesoul) 이 자료를 찾아 주신 도움으로 해결하였습니다.
찾아주신 자료는 http://www.cocoawithlove.com/2009/04/showing-message-over-iphone-keyboard.html?m=1 이거였는데 아주 오래전 4.0 이전 버전에만 작동되는 코드인거 같습니다.
제가 약간의 수정으로 iOS 7.0에서 키보드 뷰 핸들을 가져오도록 했는데요, 6.0과 5.0 에서는 테스트를 해보지 못했습니다.
수정된 코드는 아래와 같습니다.
- (UIView *)keyboardView { NSArray *windows = [[UIApplication sharedApplication] windows]; for (UIWindow *window in [windows reverseObjectEnumerator]) { for (UIView *view in [window subviews]) { if (!strcmp(object_getClassName(view), "UIKeyboardAutomatic")) return view; UIView *kview = [self findKeyboardView:view]; if(kview) return kview; } }
return nil; } - (UIView *)findKeyboardView:(UIView *)parent { for (UIView *view in parent.subviews) { if (!strcmp(object_getClassName(view), "UIKeyboardAutomatic")) return view; [self findKeyboardView:view]; }
return nil; } // 키보드 뷰 가져오기 UIView *kview = [self keyboardView]; |
'iOS Programming' 카테고리의 다른 글
UITextField / UITextView 입력 커서 이동 (0) | 2013.05.16 |
---|---|
NSLog를 확장하여 사용하기 - 로그로 가득찬 로그콘솔을 보다 보기 쉽게 구현하자. (0) | 2012.08.28 |
XML 데이터를 NSArray와 NSDictionary로 구조화하자. (1) | 2012.08.27 |
뉴아이패드(2012) 레티나 이미지 메모리 가용성에 관한 고찰 (1) | 2012.04.09 |
Xcode 4.2 도움말 설정하기 (1) | 2011.10.07 |