2010-07-16 2 views
1

사용자 지정 키보드는 UITextField에만 지정하는 방법을 설정하는 방법은 무엇입니까? using this method을 변경하면 응용 프로그램의 모든 키보드가이 새 사용자 정의 키보드로 변경됩니다. 나는 다음을 추가했다 :설정 방법 UItext 필드에만 적용되는 사용자 지정 키보드

[[NSNotificationCenter defaultCenter] addObserver:self.view 
             selector:@selector(keyboardWillShow:) 
             name:UIKeyboardWillShowNotification 
             object:nil]; 

UIViewController. 그러나 UIView으로 가면 다른 UIViewController의 키보드도 새로운 맞춤 키보드처럼 보입니다. 맞춤 키보드를 UIView으로 제한하려면 어떻게해야합니까? 도와주세요. 미리 감사드립니다.

답변

1

, 그것은 응용 프로그램의 다른 UIviews 곳곳에 남아있다. 그래서 다른 UIkeyboard 하위 뷰에서 UIToolbar의 존재를 확인하고 제거했습니다. 지금은이 .. 잘 작동

for(UIView* keyboardToolbar in [keyboard subviews]){ 
     if([[keyboardToolbar description] hasPrefix:@"<UIToolbar"] == YES) 
      { 
       [keyboardToolbar removeFromSuperview];  
      } 
    } 

+1

대신에 hasPrefix를 사용하여 특정 클래스의 인스턴스 if를 확인하고 isMemberOfClass : 또는 isKindOfClass :를 사용하십시오. – Jasarien

1

UITextView를 서브 클래 싱 한 경우 (해당 자습서에서 보여주는 것처럼) 해당 서브 클래스의 모든 인스턴스는 닫기 버튼이있는 툴바를 사용합니다.

툴바를 사용하지 않으려면 서브 클래스를 사용하지 말고 원래의 UITextView를 사용하십시오.

+0

내가 UItextview를 서브 클래 싱하고 있지 않다. 그 함수 keyboardWillShow와 addObserver 메서드 만 사용했습니다. 내가 ([UIApplication sharedApplication] windows에서 UIWindow * keyboardWindow를 사용하기 때문에) 그것을 사용합니까? –

1

당신은 당신이 이렇게 같이 textFieldShouldBeginEditing에서 원하는 텍스트 필드에 대한 검사 시도 할 수 있습니다 : 내 문제는 한 번에 사용자 정의 키보드를 로딩하고 있었다

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    if (textField == YOUR_DESIRED_TEXTFIELD) { 
     [self openCustomKeyboard]; 
    } 
    return YES; 
} 
4
UITextField* textField; 
UIView* customKeyboard; 


textField.inputView = customKeyboard; 

유사 스레드 : iPad custom Keyboard GUI

관련 문제