Как заставить setEnabled на панели инструментов работать с SDK 4.0 -iPhone
Я добавил пользовательскую кнопку на панель инструментов и установил свойство 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 ответ
Вы забыли установить фоновое изображение для отключенного состояния...
[ pTestBtn setBackgroundImage: **imageDisabled** forState: UIControlStateDisabled ];