2012-10-03 2 views
1

반투명 키보드로 MFMessageComposeViewController을 시작하려고합니다. 나는 그것을 원하는대로 투명하게 만들고 싶지만, 내가 한 독서에서 그렇게 할 수는 없다고 생각합니다.MFMessageComposeViewController 반투명 키보드

MFMessageComposeViewController을 만들 때 어떻게 UIKeyboard의 속성을 설정 하시겠습니까?

많은 감사!

답변

4

그렇지 않습니다. 문서에서 :

중요 메시지 작성 인터페이스 자체는 사용자 정의하지 않고 응용 프로그램에 의해 수정 될 수 없습니다. 또한 인터페이스를 제공 한 후에는 응용 프로그램이 SMS 내용을 더 이상 변경할 수 없습니다. 사용자는 인터페이스를 사용하여 콘텐츠를 편집 할 수 있지만 프로그래밍 방식의 변경은 무시됩니다. 따라서 원하는 경우 인터페이스를 표시하기 전에 내용 필드의 값을 설정해야합니다.

UIKeyboard는 비공개이며이보기의 텍스트 필드는 사용자가 액세스 할 수 없으므로이 인터페이스를 변경하지 않아도됩니다. 보기 계층 구조를 통해이 텍스트 필드에 액세스하여 수정하려고하면 앱 스토어에서 앱이 거부 될 수 있습니다.

1

텍스트 필드 또는 텍스트보기의 keyboardAppearance 속성을 UIKeyboardAppearanceAlert으로 설정하면 키보드가 투명 키보드로 변경됩니다. ,

id keyboardImpl = [objc_getClass("UIKeyboardImpl") sharedInstance]; 

그리고 덜 불투명 확인 :

나는 대중 API에서만 두 가지 스타일을 사용할 수있다 들었 :

[textView setKeyboardAppearance:UIKeyboardAppearanceAlert]; 
[textView setKeyboardAppearance:UIKeyboardAppearanceDefault]; 

하지만 당신은 키보드 구현을 검색하기 위해 개인 API 방법을 사용할 수 있습니다

[keyboardImpl setAlpha:0.8f]; 

색조를,

UIView *tint = [[UIView alloc] initWithFrame:[keyboardImpl frame]]; 
[tint setBackgroundColor:[UIColor colorWithRed:0.0f green:0.0f blue:1.0f alpha:0.3f]]; 
[tint setUserInteractionEnabled:NO]; 
[[keyboardImpl superview] insertSubview:tint aboveSubview:keyboardImpl]; 
[tint release]; 

심지어는 플립 :

[[keyboardImpl window] setTransform:CGAffineTransformMakeScale(-1.0f, 1.0f)]; 

이이 문제에 대한 해결책이었다 바랍니다.