0

Objective C は初めてで、これはおそらく単純なエラーです。UITextField私が持っている3つのキーボードすべてを却下しようとしていUIPickerViewます。これにより、キーボードは表示されず、ピッカー ビューのみが表示されます。いろいろ調べましたがわかりません。これは .m ファイルのコードで、動作しません。

-(void)textFieldDidBeginEditing:(UITextField*)textField;
{
    [textField resignFirstResponder];
    modeArray = [[NSMutableArray alloc] init];
    if(textField.tag==1){
        [modeArray addObject:@" bus "];
        [modeArray addObject:@" bus/mrt "];
        tbMode.inputView = pickerView;
        pickerView.hidden = NO;
    }
    else{
        if(textField.tag==2){
            [modeArray addObject:@" 300 "];
            [modeArray addObject:@" 400 "]; 
            [modeArray addObject:@" 500 "];
            tbWalkDist.inputView = pickerView;
            pickerView.hidden = NO;
        }
        else{
            if(textField.tag==3){
                [modeArray addObject:@" cheapest "];
                [modeArray addObject:@" fastest "];
                tbRouteOpt.inputView = pickerView;
                pickerView.hidden = NO;
            }
            else{
                pickerView.hidden=YES;
            }
        }
    }
}

ピッカー ビューのみを表示しているキーボードを閉じるにはどうすればよいですか? この行[textField resignFirstResponder];を使用して、キーボードを消すことができますか?

4

2 に答える 2

0

すべてのテキストフィールドをviewControllerに委任してから、メソッドを使用する必要があります。

-(BOOL)textFieldShouldReturn:(UITextField *)textField // called from textfield (keyboard) 
{
//... place your [textField resignFirstResponder]; logic here
}

必ずテキストビューデリゲートプロトコルをviewcontroller.hファイルに追加してください

@interface ViewController : UIViewController <UITextViewDelegate>
于 2012-07-27T08:12:38.247 に答える
0

私はあなたの質問をはっきりと理解していませんが、あなたが望むなら、あなたがリターンキーを押すとキーボードを隠すでしょう:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
  [textFieldName resignFirstResponder];
  return YES;

}

于 2012-07-27T08:13:16.680 に答える