Хотя я программирую на Linux, BSD и Windows в течение многих лет, я новичок в разработке для Mac, и я думаю, что я не 'понимаю' , когда дело доходит до Mac / Objective- Шаблоны разработки C / Xcode.
Я создал новое окно в Интерфейсном Разработчике под названием Window2
. Это окно было объектом, добавленным в MainMenu.xib
, и не является отдельным XIB-файлом.
На Window2
есть несколько элементов управления, в основном текстовые поля и кнопки. Я подключил эти элементы управления как свойства IBOutlet в файле .h
моего оконного контроллера. Я могу успешно получить доступ к этим свойствам внутри самого экземпляра, однако не могу получить к ним доступ из другого класса или даже из метода класса в том же классе.
Я думал об использовании глобального NSMutableDictionary для хранения указателей для каждого из элементов управления, но это кажется «хакерским». Часы интернет-поиска и переполнения стека не дали никаких полезных подсказок.
Есть ли какой-нибудь способ, который соответствует хорошим практикам программирования для доступа к свойствам экземпляра Window2
из метода класса или другого класса?
Я использую Objective-C с Xcode 9.3 на macOS 10.13.4.
Window2Controller.h
@interface Window2Controller
@property (weak) IBOutlet NSTextField * textHostName;
@end
Ниже приведено описание того, что я хотел бы сделать, и, вероятно, не работает код:
OtherClass.m
#import "Window2Controller.h"
@implementation OtherClass
- (void)printTextHostNameValue
{
NSString * txtHost = [Window2Controller textHostName] stringValue];
NSLog(@"txtHost is: %@", txtHost);
}