2014-04-07 1 views
1

사용자가 피커보기에서 키보드보기로 전환 할 수 있도록 첨부 된 도구 모음 단추가있는 UIPickerView가 설정되어 있습니다. pickerView가 아래로 내려 가야하고 키보드가 그 위치에서 위로 움직여야합니다 ... 이론적으로.UIPickerView에서 키보드로 전환

사용자가 textFieldDidBeginEditing에서 텍스트 필드를 클릭하면 pickerView가 나타납니다.

elementPicker = [[UIPickerView alloc] init]; 
    [elementPicker setDelegate:self]; 
    elementPicker.showsSelectionIndicator = YES; 
    ... 
    [_itemElementField setInputView:elementPicker]; 

사용자가 "키보드 사용"버튼을 클릭하면 피커를 닫고 키보드를 호출 할 수있는 방법이 있습니다. 문제없이 pickerview를 닫을 수는 있지만 키보드를 표시 할 수 없습니다 !!

HELP!

-(void)useKeyboardClicked:(id)sender { 
    NSLog(@"'USE KEYBOARD' BUTTON CLICKED"); 

    // DISMISS THE PICKER VIEW 
    [elementPicker removeFromSuperview]; 
    [_itemElementField resignFirstResponder]; 
    _itemElementField.inputAccessoryView = nil; 

    // SET ELEMENTPICKER TO THE DEFAULT KEYBOARD 
    elementPicker = UIKeyboardTypeDefault; 
    [_itemElementField setInputView:elementPicker]; 

    // SHOW KEYBOARD 
    [_itemElementField becomeFirstResponder]; 
} 

내가 지금 헛소리 잡고 도움이 필요 해요 : 여기

은 사용자가 키보드를 원하는 때 호출하는 방법입니다! 나는 심지어 지금까지 키보드 파일을

@property (strong, nonatomic) IBOutlet UIKeyboard *elementKeyboard; 

으로 정의하려고 시도했지만 그 모두가 작동하지 않습니다.

다음

-(void)useKeyboardClick:(id)sender 

{

if (checkFlag) { 
    checkFlag=false; 
    [txtField setInputView:nil]; 
    [txtField reloadInputViews]; 
    [txtField setKeyboardAppearance:UIKeyboardAppearanceDefault]; //you can set UIKeyboardAppearnce as Dark,light, alert instead of Default 
    [txtField setKeyboardType:UIKeyboardTypeDefault]; // you set decimal keyboard 
} else { 
    checkFlag=TRUE; 

    [txtField setInputView:nil]; 
    [txtField setInputAccessoryView:numberToolbar]; 
    [txtField setInputView:pickerView]; 
} 

}

한 가지 메신저하지 : 여기

+0

'_itemElementField' 것입니다 : 여기

코드인가? – Harsh

+0

_itemElementField는 사용자가 선택 도구를 호출하기 위해 클릭하는 텍스트 필드의 이름입니다. – Jupiter869

답변

0

는 useKeyboardClicked의 기록을 유지하는 부울 변수 checkFlag을 선언해야 첫째 솔루션 총 잘못하지만 난 키보드 대신에 피커보기를 설정할 수 없습니다 ..... tr 이게 내가 당신에게 힌트를 주었다 ...

0

미래에이 문제가있을 수있는 사람들을 위해 대답은 아주 간단하게 끝납니다.
입력보기을 다시로드해야합니다. reloadInputViews 인 키보드로 재설정하십시오.

-(void)useKeyboardClicked:(UITextField *)sender { 
    NSLog(@"'USE KEYBOARD' BUTTON CLICKED"); 

    [_itemElementField setInputView:UIKeyboardTypeDefault]; 
    [_itemElementField becomeFirstResponder]; 
    [_itemElementField reloadInputViews]; 
} 
관련 문제