IPhone SDK: изменение метки, созданной в конструкторе интерфейсов, по коду - PullRequest
1 голос
/ 25 января 2012

У меня есть полностью готовый проект IPhone.Мне нужно локализовать это.Первый раз на Mac, первый раз с XCode и объективом C. Я почти заблудился.В любом случае, я пытаюсь изменить значение метки (моя первая задача).

Когда я захожу в "Интерфейсный конструктор", у меня есть файл .xib.Я нажимаю на него, вижу интерфейс с некоторыми «объектами» (изображения, метки и т. Д.).Тогда я могу нажать на ярлык ... Как я могу изменить текстовое значение?Я посмотрел в соответствующий файл .m и .h, нигде нет UILabel ...

(я использую xcode 4.2)

ОБНОВЛЕНИЕ: Я смогизменить текст, дважды щелкнув объект в Интерфейсном Разработчике.Теперь мне нужно изменить текст в коде.

ОБНОВЛЕНИЕ 2 Я смог сделать это, используя решение Jeroen.

Вот некоторые точности:

Вам необходимо добавить IBoutlet UILabel * myLabel;часть внутри скобок @interface YourViewController part

@property разболтался внутри .h файла

Часть @synthesize "разболталась" внутри .m файла

[Релиз myLable];часть идет внутри метода (void) dealloc файла .m

Чтобы изменить текст внутри кода, я добавил этот код:

self.myLabel.text = [NSString stringWithFormat:@"Test..."];

внутри метода "viewDidLoad".m файл.

И сделать drag'n'drop:

  1. Найти метку внутри поля «Объекты» (в Интерфейсном Разработчике)
  2. Щелкните правой кнопкой мыши на ярлыке, там должно быть маленькое черное всплывающее окно
  3. Справа от строки «Новый источник ссылок» внутри всплывающего окна есть маленький кружок.Это то, что вы можете перетаскивать.Перетащите его на элемент «Владелец файла» в поле «Заполнители».

Ответы [ 2 ]

1 голос
/ 25 января 2012

В xcode 4.2 конструктор интерфейсов действительно помогает вам.Что вам нужно сделать, это настроить Xcode, чтобы вы могли видеть свою раскадровку и свой контроллер.

Удерживая нажатой клавишу Ctrl, нажмите на метку и перетащите.Линия должна появиться.Перетащите эту строку в редактор .h контроллера вида и отпустите.Должно появиться всплывающее окно с запросом имени.Называйте его как хотите, например, uiLabel.

Теперь вернитесь к вашему файлу контроллера представления .m.Если там нет метода с именем viewDidLoad, создайте его:

-(void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    self.uiLabel.text = @"hello world!";
}

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

Попробуйте здесь , чтобы увидеть, как это делается.Перейдите к пункту «Создание соединений непосредственно между объектами IB и файлами вашего кода»

Надеюсь, это поможет

1 голос
/ 25 января 2012

Если вы хотите изменить текст UILabel, вы должны добавить его вручную в файлы .h en .m, а затем связать его через конструктор интерфейса.

Чтобы связать его, вы должны добавитьIBoutlet в вашем .h файле: например, IBOutlet UILabel *myLabel;

и создайте из него свойство @property (nonatomic, retain) IBOutlet UILabel *myLabel;

В файле .m вы должны синтезировать и освободить.

например.@synthesize myLabel; и

[myLabel release]; 

После этого вы сможете подключить UILabel из xib к исходному файлу, щелкнув его правой кнопкой мыши и подключив 'New Referencing Outlet' к правильной метке в 'Владелец файла'

Однако это не то, как переводы на iOS должны быть сделаны.Они очень хорошо описывают это здесь.http://developer.apple.com/internationalization/

Короче говоря, Apple рекомендует делать xib для каждого языка.Вы можете сделать xib локализуемым, щелкнув по нему правой кнопкой мыши и выбрав «Создать файл, локализуемый».После этого вы можете нажать на кнопку «Добавить локализацию», чтобы добавить новый язык.

Убедитесь, что ваше приложение довольно стабильно, потому что постоянно обновляться на другом языке становится довольно утомительно.

...