Как получить uicontrols по их идентификатору в среде разработки iphone

Я только начинаю изучать iphone API, и я сделал много программирования для Windows, и я уверен, что есть способ, учитывая объект, переданный обработчику событий, идентифицировать его идентификатор объекта или тег или что-то в этом роде.

Я создал серию UIButtons в построителе интерфейса, и у каждого есть идентификатор объекта. Но я просто не вижу, где в iphone API вы можете получить этот идентификатор из объекта UIButton.

Я вижу, что все используют titleforstate, но для меня это не работает, потому что у всех одинаковое название. Или мне поместить изображение в кнопку и использовать заголовок в качестве идентификатора?

У построителя интерфейса есть «идентификатор построителя интерфейса», к которому, как я предполагаю, у меня нет доступа из API iphone, не так ли?

Также есть параметр под названием «Тег» в разделе «вид» атрибутов кнопки, но это число. Это подойдет, но я также не вижу вызова API для этого.

Я просто пытаюсь понять, как идентифицировать элемент управления пользовательским интерфейсом с помощью других средств, кроме его названия. Спасибо.


person stu    schedule 03.05.2009    source источник


Ответы (2)


он унаследован от NSObject, вам просто нужно вызвать переменную.tag

person CiNN    schedule 03.05.2009
comment
чудесный. Я просмотрел все остальные объекты, от которых наследуется UIButton, кроме NSObject. Спасибо. - person stu; 04.05.2009
comment
stu, если вы одобрите это как ответ, это поможет другим, у кого есть такой же вопрос, найти его. - person willc2; 04.05.2009
comment
И чтобы согласиться с этим, есть удобный метод viewWithTag: UIView. - person Dave DeLong; 20.08.2009

Предоставленный ответ отлично работает для меня, но где он задокументирован? Я смотрю Справочник по протоколу NSObject, и там нет упоминания об атрибуте или методе тега.

-(IBAction) buttonPressed:(id)sender {
    int tagNum = [sender tag];

[править] Оказывается, тег находится в NSView, а не NSObject. Все, что наследуется от NSView, имеет атрибут тега.

person progrmr    schedule 15.08.2009