Как заставить setEnabled на панели инструментов работать с SDK 4.0 -iPhone - PullRequest
1 голос
/ 27 февраля 2011

Я добавил пользовательскую кнопку на панель инструментов и установил свойство setEnabled: NO, но кнопка не отображается серым цветом при загрузке представления с использованием SDK 4.0.Однако, если тот же код скомпилирован с SDK 3.1.2, кнопка отображается серым цветом.Есть идеи?

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    UIImage* pImage = [UIImage imageNamed:@"Test.png"];

    CGRect TestBtnFrame = CGRectMake(0, 0, pImage.size.width, pImage.size.height);
    UIButton* pTestBtn = [[UIButton alloc] initWithFrame:TestBtnFrame];

    [pTestBtn setTitle:@"  Test" forState:UIControlStateNormal];
    [pTestBtn addTarget:self action:@selector(OnTestBtnClick)   forControlEvents:UIControlEventTouchUpInside];      
    [pTestBtn setBackgroundImage:image forState:UIControlStateNormal];

    // [pTestBtn setEnabled:NO];     

    // Class member variable to be released in dealloc
    m_pTestBarBtn = [[UIBarButtonItem alloc] initWithCustomView: pTestBtn];
    [pTestBtn release]; 

    [m_pTestBarBtn setEnabled:NO];

    [self setToolbarItems:[NSArray arrayWithObjects: m_pTestBarBtn, nil] animated:YES];

}

1 Ответ

0 голосов
/ 27 февраля 2011

Вы забыли установить фоновое изображение для отключенного состояния ...

[ pTestBtn setBackgroundImage: **imageDisabled** forState: UIControlStateDisabled ];
...