Отредактируйте свой подкласс UITableViewCell
и зарегистрируйте свои экземпляры для уведомления о редактировании в методе viewDidLoad
или init
вашего подкласса:
[[NSNotificationCenter defaultCenter] addObserver: selfселектор: @selector (disableTextBox) name: @ объект EditingIsEnabled: nil];
И реализуйте метод с именем disableTextBox
, который отключает текстовое поле для этой ячейки.
Затем в вашем методе setEditing:animated
опубликуйте уведомление, когда вы хотите начать редактирование:
[[NSNotificationCenter defaultCenter] postNotificationName: @ "EditingIsEnabled" object: self];
Переопределите метод dealloc
в вашем UITableViewCell
и удалите себя в качестве наблюдателя, иначе у вас возникнет сбой:
[[NSNotificationCenterdefaultCenter] removeObserver: self];
Если вы не используете ARC, обязательно вызовите [super dealloc]
.Если вы используете ARC, не звоните super.
Вы можете сделать то же самое, когда хотите отключить все ячейки, просто опубликовать уведомление с другим именем, например EditingIsDisabled
.
Дайте мне знать, если вам понадобится немного конкретизировать код.
Редактировать: мне больше нравится метод DBD в этой ситуации.