0

日付ピッカーとツールバーを備えたビューを実装しています。次のコードがあります。

-(id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        self.toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(frame), 44)];
        UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
                                                                                      target:self
                                                                                      action:@selector(didSelectCancelButton)];
        UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

        UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                                    target:self
                                                                                    action:@selector(didSelectDoneButton)];

        NSArray *buttons = @[cancelButton, flexible, doneButton];
        [self.toolbar setItems:buttons
                      animated:NO];

        self.datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 50, CGRectGetWidth(frame), 216)];


        [self addSubview:self.datePicker];
        [self addSubview:self.toolbar];

    }
    return self;
}

- (IBAction)didSelectCancelButton {
    if ([self.delegate respondsToSelector:@selector(datePickerDidCancelDateSelection:)]) {
        [self.delegate datePickerDidCancelDateSelection:self];
    }
}

- (IBAction)didSelectDoneButton {
    NSLog(@"");
}

しかし、ボタンをクリックしても何のアクションも実行されません。メソッドは呼び出されません。私が間違っていることを教えてもらえますか?ありがとう

EDIT:タッチイベントをキャプチャしていたジェスチャ認識機能があったことが判明しました。それを修正すると、この問題は解決しました。

4

2 に答える 2

0

日付ピッカー (ツールバーと同じ幅) が何らかの形でボタンにユーザーのタッチを妨げているのではないかと思います。

これらの 2 行を次のように逆にしてみてください。

[self addSubview:self.datePicker];
[self addSubview:self.toolbar];
于 2013-07-09T20:29:32.840 に答える