2014-09-07 2 views
-1

У меня есть класс с именем TextFieldMagic который обрабатывает NSTextField манипуляции, анимацию, проверку и т.д.Получение NSTextField значения из другого класса

Я хочу, чтобы получить экземпляр NSTextField из класса TNE TextFieldMagic в моей AppDelegate. Я попробовал следующее, и я не мог заставить его работать. Я просто получаю (нуль)

- (IBAction)testHide:(id)sender { 
    TextFieldMagic *textFieldMagic = [[TextFieldMagic alloc] init]; 
    NSLog(@"%@",[textFieldMagic.textField stringValue]); 
} 

Конечно, я мог бы создать IBOutlet для NSTextField в моем AppDelegate, чтобы получить эту работу, но я хочу, чтобы понять, как сделать это без создания IBOutlet в AppDelegate ,

ответ

0

Это неправильный подход. С MVC, который является образцом дизайна, принятым с приложениями Cocoa, NSTextField является частью представления и должен использоваться исключительно контроллером для заполнения модели.

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

+0

Хорошо, я понимаю, что я не должен использовать один и тот же вид для нескольких контроллеров. Но что, если мой вид похож на консоль, который должен отображать сообщения об ошибках из разных частей приложения? Моя мысль здесь заключается в создании этого объекта TextFieldMagic, который будет обрабатывать все журналы/ошибки, которые необходимо отправить на консоль [NSTextField]. Я ценю ваш быстрый ответ. – Silican

+0

@ Силикан Вы выставляете метод в контроллере, который обновляет представление. – trojanfoe

+1

Спасибо за объяснение и ваше время. Я принял ваше предложение и создал контроллер, который заботится о обновлении представления. – Silican

Смежные вопросы