Подключить UILabel в Интерфейсном Разработчике и XCode? - PullRequest
9 голосов
/ 30 сентября 2010

Я пытаюсь сделать что-то столь же простое, как добавить метку в представление в XCode и IB, и я не могу понять, как это сделать. Все образцы, которые я нахожу в Интернете, предназначены для более старых версий IB, поэтому указания не верны.

У меня есть метка в моем файле .xib, в моем файле Controller.h у меня есть объявление IBOutlet UILabel с настроенным свойством.

В моем файле Controller.m я синтезировал это свойство.

В Интерфейсном Разработчике я не могу понять, как связать свою метку в моем коде с Меткой на .xib. Всякий раз, когда я пытаюсь перетащить соединение с владельцем файла, отображается только опция «Просмотр».

Если я посмотрю на Контроллер в окне Библиотеки Интерфейсного Разработчика, Метка отобразится как UILabel под Розетками. Я почти уверен, что раньше это был тип "id", но он автоматически отображается как UILabel, и если я пытаюсь добавить "id", он тоже не работает.

Может кто-нибудь указать мне куда-нибудь, чтобы объяснить эту глупость? Не должно быть так сложно, чтобы на ярлыке был текст.

Ответы [ 4 ]

8 голосов
/ 30 сентября 2010

Предполагается, что ваше представление называется ExampleView.Нажмите на владельца файла и затем нажмите ⌘ + 4.Это выделит поле для идентификации.Убедитесь, что имя класса совпадает с именем вашего класса.

Сохраните и закройте Interface Builder, а затем перейдите в Xcode и проверьте:

// ExampleViewController.h
#import <UIKit/UIKit.h>

@class ExampleViewController;
@interface ExampleViewController : UIViewController {

    IBOutlet UILabel *label;
}

@property (retain, nonatomic) IBOutlet UILabel *label;

@end

В вашем файле .m:

// ExampleViewController.m
#import "ExampleViewController.h"

@implementation ExampleViewController

@synthesize label;

Затем сохраните файлы xcode и откройте ваш ExampleView.Перетащите метку на вид.Вы не должны связывать этот ярлык с владельцем файлов.

ВМЕСТО ВЫ НАЖИМАЕТЕ НА ФАЙЛОВЕР.HIT ⌘ + 2 откроет окно подключения.тогда вы увидите вашу точку.Нажмите и подключите это к вашему ярлыку.

3 голосов
/ 30 сентября 2010

Убедитесь, что строка свойства выглядит следующим образом:

@property (nonatomic, retain) IBOutlet UILabel *label;

Оставьте (или установите) тип метки как UILabel в Интерфейсном Разработчике.Если это не сработает, попробуйте Файл -> Перезагрузить все файлы классов в Интерфейсном Разработчике.Ваш код выглядит хорошо, но CardNameLabel должен начинаться со строчной буквы 'c'.

2 голосов
/ 30 сентября 2010

Попробуйте: нажмите на значок «Владелец файла», чтобы выбрать его, и перейдите на вкладку «Идентификация инспектора» (4-я вкладка) и проверьте значение параметра Class. Я думаю, что в настоящее время он установлен на UIViewController.

Поскольку объявленный вами класс IBOutlet является (или должен быть) подклассом UIViewController, вам нужно изменить имя класса на имя вашего подкласса (например, MyController, или как бы там ни было)

0 голосов
/ 30 сентября 2010

Предположим, что у вас есть viewController и xib-файл, на котором есть UILabel.Шаги для подключения UiLabel (также xib-файла) к вашему viewController:

1) В файле заголовка создайте объект UiLabel и его свойство

IBOutlet UILabel *label;

@Property (Nonatomic, retain) IBOutlet UILabel *label;

и синхронизируйте его в орудииfile

2) Откройте файл xib в Интерфейсном Разработчике

Дважды щелкните «Владелец файла», затем выберите viewController в раскрывающемся списке всплывающих окон, чтобы подключить файл xib к контроллеру

3) щелкните правой кнопкой мыши по владельцу файла во всплывающем диалоговом окне:

  • наведите курсор и перетащите плюш (+) рядом с «Видом» и поместите его в строку «Просмотр»
  • наведите и перетащите плюш (+) рядом с «меткой» и поместите его на метку в представлении

=> теперь метка и представление файла XIB подключены к вашему контроллеру

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...