Я считаю, что не могу отключить его, потому что не могу получить к нему доступ UIBarButttonItem
программно
(с помощью viewWithTag или rightBarButtonItem
).
Любые предложения (если не считать добавления интерфейса без IB)?
В качестве теста я также попытался добавить кнопку программно (слева от панели навигации), но она не отображалась в панели навигации.бар.
СООТВЕТСТВУЮЩИЙ КОД (В MyEditorViewControler.m
):
- (void)textFieldDidBeginEditing:(UITextField *)sender { //successfully executes when keyboard slides in
UINavigationItem *item = self.navigationItem; //item = 0x6420e0 OK. (value at debugger breakpoints)
UIBarButtonItem *doneButton4 = (UIBarButtonItem *) [self.view viewWithTag:44]; //doneButton4 = 0x0, not OK.
doneButton4.enabled = NO;
}
- (void)textFieldDidEndEditing:(UITextField *)sender { //successfully executes when keyboard slides out.
...
UIButton* doneButton = (UIButton *)[self.view viewWithTag:44]; //Attempt to re-enable button.
doneButton.enabled = YES;
}
- (void)viewDidLoad { //Attempt to programmatically add a *left* button to the nav bar. Result: Button does not display in nav bar.
....
UIBarButtonItem *leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)];
self.navigationItem.leftBarButtonItem = leftBarButtonItem;
[leftBarButtonItem release];
}
ДЕТАЛИ
Я думаю, что это обычный случай, потому что кнопка Готово:
a) является UIBarButttonItem
добавлено из библиотеки IB в панель навигации, которая находится в представлении прокрутки, с некоторыми UITextField's
.
b) ведет себя как ожидалось (для сохранения введенных пользователем данных и т. д.),
за исключением того, что не отключается при вводе с клавиатурыПоявляется
c) IB> Инспектор> Значки элементов панели кнопок:
Идентификатор = Готово
Метка = 44
Класс = UIBarButtonItem