0

UIToolbar コントロールを作成しました。これは setInputAccessoryView として 1 つの UITextField コントロールに追加されます。これは正常に動作します。UITextFieldをタップすると、トールバーにuikeyboardが表示されます。これまでは問題ありません。

1 つのボタンを配置したときに、それをタップすると、キーボードを非表示にして、ツールバーのみを表示したい。

これは発生していません。ツールバーが非表示になっています。

コードの問題/理由を教えてください。

御時間ありがとうございます。

- (void)viewDidLoad {

 [super viewDidLoad];

        //
        myToolbar = [[UIToolbar alloc] init];
        [myToolbar sizeToFit];
        myToolbar.frame = CGRectMake(0,198, 320, 35);
        myToolbar.barStyle = UIBarStyleBlackTranslucent;
        [self.view addSubview:myToolbar];


        UIImage *image = [UIImage imageNamed:@"orangebuttonsmall.png"];
        UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom];
        aButton.frame = CGRectMake(0, 100, image.size.width, 25 );    
        aButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
        [aButton setTitle:@"Tap" forState:UIControlStateNormal];
        [aButton setBackgroundImage: image forState:UIControlStateNormal];
        [aButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        aButton.titleLabel.font = [UIFont boldSystemFontOfSize:10];
        [aButton addTarget:self action:@selector(aCenterBtnClicked:) forControlEvents:UIControlEventTouchUpInside];
         [self.view addSubview:aButton];


        myToField = [[UITextField alloc] init];
        myToField.frame = CGRectMake(0, 0, 320, 48);
        myToField.textColor = [UIColor blackColor]; //text color
        myToField.font = [UIFont systemFontOfSize:17.0];  //font size
        myToField.placeholder = @"To:";  //place holder
        myToField.backgroundColor = [UIColor whiteColor]; //background color
        myToField.autocorrectionType = UITextAutocorrectionTypeNo;  // no auto correction support
        myToField.keyboardType = UIKeyboardTypePhonePad;  // type of the keyboard
        myToField.returnKeyType = UIReturnKeyDone;  // type of the return key
        myToField.clearButtonMode = UITextFieldViewModeWhileEditing;
        [myToField setInputAccessoryView:myToolbar];
        myToField.textAlignment = UITextAlignmentLeft;
        [myToField setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter];

        myToField.rightViewMode=UITextFieldViewModeAlways;
        // has a clear 'x' button to the right
        myToField.delegate = self;  
        [myToField becomeFirstResponder];
        [self.view addSubview:myToField];

     }

    -(void)aCenterBtnClicked:(id)sender{

        [myToField resignFirstResponder];

        myToolbar.frame = CGRectMake(0,198, 320, 35);
        myToolbar.barStyle = UIBarStyleBlackTranslucent;
        [self.view addSubview:myToolbar];
    }
4

2 に答える 2

0

inputAccessoryViews は UIKeyboard のサブビューとして配置されます。キーボードを非表示にすると、inputAccessoryView が非表示になります。ツールバーを self.view のサブビューとして追加し、UIKeyboardWillShow 通知をサブスクライブして userInfo からアニメーション期間を取得することにより、キーボードが表示されたときにその位置をアニメーション化してみてください。

于 2012-05-04T08:30:42.863 に答える
0

静的ツールバーを試してみるのは簡単だと思います.セット入力ビューを削除する方法がないため、setinputviewから削除する前に完了していません。

于 2012-05-04T08:46:09.327 に答える