1

내 문제 :
iOS 8 용 사용자 지정 키보드를 개발하려고합니다. 버튼이 작동하고 있지만 그 모든 것이 있지만 다른 설정을 수행하는 방법을 알고 싶습니다. iPad 또는 iPhone이며 키보드가 밝거나 어두울 때 모양을 변경하는 방법입니다. 모든 것을위한 .xib를 얻을 수 있습니까? 아니면 어떤 종류의 트릭이 있습니까?화면 크기와 모양이 다른 .xib가 있습니까? - iOS 8 키보드 확장

예 : 아이 패드 키보드 초상화
.xib 빛 아이 패드 키보드 초상화 아이 패드 키보드 풍경 빛
.xib에 대한
.xib 다크 아이폰 아이 패드 키보드 풍경 다크
.xib에 대한
.xib 키보드 세로 빛
등 등 ...


난 당신의 모습을 확인할 수 있습니다 추측 사전에 ...

if (self.textDocumentProxy.keyboardAppearance == UIKeyboardAppearanceDark) { 

감사를 키보드 이런 식으로하고 그에 따라 버튼의 이미지를 변경할 수 있지만, 다음 예 (다른 레이아웃)에 대한 아이 패드에 다른 키보드는 내 문제입니다.

답변

0

textDidChange(textInput: UITextInput)keyboardAppearance을 확인하여 키보드 테마를 변경하고 싶을 것입니다. 모든 버튼을 반복하고 적절한 텍스트/배경색을 적용하십시오.

내 키보드에 단일 .xib 파일을 사용하기로 결정했습니다. Regular w Regular h 크기 클래스를 사용하여 iPad를 최적화 할 수는 있지만 가로 세로 크기가 항상 같기 때문에 iPhone을 가로 모드로 최적화 할 수 없습니다 (Compact w Compact h). 키보드 높이와 너비를 감지하기 위해 viewDidLayoutSubviews에 키보드를 설정 한 다음 해당 크기와 방향을 최적화하기 위해 특성 컬렉션 크기 클래스와 함께이 값을 사용합니다. 당신은 또한 많은 다른 xibs를 만들 수 있습니다, 나는 당신이 하나의 xib로 도망 갈 수 있다면 그것을 추천하지 않을 것입니다.

+0

알겠습니다. 감사합니다. 테마 기능을 작동시킬 수있었습니다. 하지만 저는 크기 클래스에 익숙하지 않기 때문에 iPhone 용으로 하나의 .xib를, iPad 용으로 하나의 .xib를 갖고 싶습니다. 내가 그것을 어떻게 설정할 수 있는지 알기에 올바르게로드 할 수 있습니까? 다시 한번 감사드립니다. – ifraaank

+0

그런 경우 장치 크기에 따라 조건부로 적절한 xib를로드해야합니다. 'viewDidLoad'에서 size 클래스를 감지 할 수 있어야합니다 (iPad의 경우 Regular w Regular h 만 해당). 그러면 xib가 올바른지로드하십시오. 'viewDidLoad'가 너무 빠르다면, 최악의 경우 viewDidAppear에서 수명주기의 후반부를 점검 할 필요가 있습니다. 단순히'self.traitCollection.horizontalSizeClass'와'verticalSizeClass'를 쿼리하면됩니다. – Joey