2016-05-05 13 views
0

私はを持っています。これは、ユーザが自分のビューでテキストフィールドをタップしたときにプログラムレスで(最初のレスポンダとして)作成されます。これはfor-loop内部で発生するので、私のコードでこのピッカーへの参照はありません。私はまた、ピッカーにinputAccessoryViewとして追加されるピッカーの上にツールバーがあります。私はを持っていますボタンは、最初の応答者を辞任します。ここまでは順調ですね。InputAccessoryViewのボタンからuidatepickerの値を変更します

Doneボタンのほかに、ツールバーに別のボタンを追加して、ピッカーの値を変更したいとします。アクティブピッカーをトラッキングできるようにするUIDatePickerDelegateはありません。

私はいつも自分のピッカーごとにクラス変数を定義し、参照を手動で保存することができます。しかし、inputAccessoryViewから直接inputViewにアクセスすることができます。 some.mファイルでsome.hファイルで

+0

あなたはあなたのコードを表示することができますか? –

答えて

0

この

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController 

{ 
    IBOutlet UIDatePicker *picker1; 
    IBOutlet UITextField *txtFld; 

} 
@property (nonatomic, retain) UIToolbar *keyboardToolbar; 

@end 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; 
picker1=[[UIDatePicker alloc] initWithFrame:CGRectMake(0, 0, 320, 300)];//frames are just for demo 
[txtFld setInputView:picker1]; 
} 

- (void)keyboardWillShow:(NSNotification *)notification 
{ 
    if(keyboardToolbar == nil) { 
     keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 410, 320, 44)] ; 
     [keyboardToolbar setBarStyle:UIBarStyleBlackTranslucent]; 
     [keyboardToolbar sizeToFit]; 

     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDuration:0.4]; 

     UIBarButtonItem *flexButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; 

     UIBarButtonItem *doneButton1 =[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(resignKeyboard)]; 
     NSArray *itemsArray = [NSArray arrayWithObjects:flexButton,doneButton1, nil]; 

     [keyboardToolbar setItems:itemsArray]; 


     [txtFld setInputAccessoryView:keyboardToolbar]; 
     [self.view addSubview:keyboardToolbar]; 
     [UIView commitAnimations]; 
    } 
} 



-(void)resignKeyboard { 

    [keyboardToolbar removeFromSuperview]; 
    [txtFld resignFirstResponder]; 
///do nescessary date calculation here 

    } 
関連する問題