Добавление торговых точек в UIButton - PullRequest
0 голосов
/ 27 марта 2010

Для быстрого макетирования пользовательского интерфейса я хотел бы иметь возможность перетаскивать кнопки на представление в конструкторе интерфейса, а затем перетаскивать соединение с этой кнопки на представление, которое должно появиться при нажатии на нее.

Подкласс UIButton немного неудобен в использовании в IB, поэтому я бы предпочел добавить поведение в сам UIButton. К сожалению, похоже, что торговые точки, созданные в категории, не видны в IB:

@interface UIButton (myextensions) {
    IBOutlet UIView *outletDestination;
}
@end

Можно ли добавить дополнительные розетки таким образом?

1 Ответ

2 голосов
/ 27 марта 2010

Можно ли добавить дополнительные розетки таким образом?

Нет. Вы не можете добавить переменные экземпляра, объявив их в категории.

Однако вы можете добавить свойства, и вы можете добавить IBOutlet к свойствам, чтобы вы могли добавлять торговые точки таким образом. В современной среде выполнения (единственной доступной на iPhone) свойства могут добавлять переменные экземпляра.

Я не думаю, что вы можете сделать это, если намереваетесь создать собственный метод доступа к свойству (вы должны использовать @synthesize), но для вашего случая это не так важно: вы просто дразните пользовательский интерфейс, поэтому вы не собираетесь писать собственные средства доступа.

В качестве альтернативы, вы можете создавать розетки в самом IB на вкладке Classes на панели Library. Выберите там класс, затем вкладку «Розетки» на панели ниже и добавьте розетку в список.

Вам понадобится открыть перо для этого другого решения, иначе классы не появятся. Это потому, что он чувствителен к контексту: перо Mac будет иметь классы AppKit (например, NSButton), тогда как перо iPhone будет иметь классы UIKit.

...