1

UITextField が firstResponder の場合、「キーボードを下に移動」せずに UIDatePicker (画面の下部)を前面に出したい(UITextField rejectFirstResponder を呼び出さない)。

FirstResponderになるとほぼ全てでポップアップするUITextFieldのUIKeyboardのような処理をするのが狙いです。modalViewController はフルスクリーンのみのようです。


- showDatePicker:(id)sender {
    if([taskName isFirstResponder]) [taskName resignFirstResponder];
    [self.view.window addSubview: self.pickerView];

    // size up the picker view and compute the start/end frame origin
    (...)
    [UIView commitAnimations];

}

この例は、キーボードが下に移動し、DatePicker が上に移動するアニメーションで、前ではなく後ろにあります。

解決策を知っていますか?コードの一部は大歓迎です。前もって感謝します。

4

2 に答える 2

8

これは、テキスト フィールドの入力ビューをピッカー ビューに設定するだけで簡単に実行できます。次に、編集時に、ピッカー ビューにファーストレスポンダになるように指示し始めました。このような

textField.inputView = pickerView

次に、編集が開始されたときに呼び出される IBAction を使用する

-(IBAction) setPickerViewAsFirstResponder:(id)sender
{
    [pickerView becomeFirstResponder];
}

これは完全に機能します。ピッカー ビューが現在表示しているものをテキスト フィールドの文字列として実際に設定するには、コードを実装する必要があります。

于 2011-12-01T01:17:21.667 に答える
2

これは間違いなく実行できます...設定後、以下のメソッドを実装するだけ UIViewController <UITextFieldDelegate>です.h

簡単に言えば、これはテキスト編集が始まる前にキーボードの読み込みをオーバーライドします。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    // Make a new view, or do what you want here
    UIDatePicker *pv = [[UIDatePicker alloc] initWithFrame:CGRectMake(0,245,0,0)];
    [self.view addSubview:pv];
    return NO;  
}
于 2011-02-08T21:55:37.027 に答える