Как я могу создать `IBOutlet` или` IBAction` в пользовательском классе - PullRequest
4 голосов
/ 21 января 2012

как я могу создать IBOutlet или IBAction с учетом следующих условий:

  • IBAction или IBOutlet должны быть созданы внутри моего пользовательского класса (унаследовано от NSObject)
  • NSButton экземпляр виден внутри Interface Builder (XCode 4)

Короче говоря, я хотел бы добавить действие нажатия кнопки в моем классе.

Любая помощь оценена,спасибо:)

РЕДАКТИРОВАТЬ 19.02.2012

Я задавал вопросы, не предоставляя всех необходимых данных ... Мне просто нужно было прочитать еще несколько руководств по какао ...

Я хотел подключить действия к компонентам из других областей, что невозможно из того, что я знаю: (

Ответы [ 2 ]

5 голосов
/ 22 января 2012

Посмотрите учебную документацию Apple по Какао, которая поставляется с Xcode 4, она довольно важна для модели Xcode / Cocoa / дизайнера интерфейса!

В общих чертах:

@interface MyCustomClass

- (IBAction) myButtonClickAction:(id)sender;

@end

@implementation MyCustomClass

- (IBAction) myButtonClickAction:(id)sender
{
   NSLog(@"My button has been clicked");
}

@end

Теперь в конструкторе интерфейса (просто откройте файл .xib в XCode, чтобы получить конструктор), вам необходимо:

  1. Добавьте экземпляр MyCustomClass - выберите Объект из Библиотеки объектов и перетащите его на Объекты (обычно на lhs холста) или на Дизайн холста (он просто перейдет в Объекты, а не создаст графический виджет на холсте). Теперь выберите добавленный Object и в Inspector (обычно в правой части холста) установите класс MyCustomClass. Теперь при запуске приложения будет создан экземпляр MyCustomClass.
  2. Выберите NSButton на холсте дизайна, выберите вкладку Соединения в Инспектор . Нажмите и перетащите из селектор в Отправленные действия в MyCustomClass в Objects . После освобождения вы получите меню IBAction с, выберите myButtonClickAction.
  3. Возможно, вы захотите добавить IBOutlet к вашему делегату приложения , чтобы связать созданный экземпляр пользовательского объекта, если вы этого не сделаете, у вас не будет прямого способа доступ к нему. Процесс для этого следует той же схеме, что и для IBAction выше.

Вот так, словами (помогают картинки) и очень кратко.

А теперь иди и прочитай эти уроки!

0 голосов
/ 21 января 2012

IBOutlet и IBAction - это просто флаги, которые будут использоваться Интерфейсным сборщиком для соединения UIComponents и их действий с классами (отсюда и префикс IB).Это все, для чего они используются - вы не используете их для программного соединения кнопок с действиями

Если вы хотите подключить кнопку к действию, вам нужно добавить и действие к кнопке.

(не уверен в синтаксисе с NSButton, так как я программист на iOS - но ищите документы, и это должно быть ясно)

...