Я пытаюсь установить текст NSTextField из другого класса ..управления IBOutlet равна нулю
Это то, что я есть:
Preferences.h
@interface Preferences : NSObject
{
IBOutlet NSTextField *selectionPointX;
}
@property (nonatomic, unsafe_unretained) IBOutlet NSTextField *dateTimeFormatPreview;
- (void)getSelection:(NSPoint)point :(NSSize)size;
@end
Preferences.m (только то, что нужно)
#import "Preferences.h"
@implementation Preferences
NSUserDefaults *userDefaults = nil;
int cPx;
int cPy;
int cSw;
int cSh;
- (void)getSelection:(NSPoint)point :(NSSize)size{
cPx = (int) point.x;
cPy = (int) point.y;
cSw = (int) size.width;
cSh = (int) size.height;
[self saveSelection];
}
- (void)saveSelection{
NSPoint p;
p.x = cPx;
p.y = cPy;
NSSize s;
s.width = cSw;
s.height = cSh;
[userDefaults setObject:NSStringFromPoint(p) forKey:@"selectionPoint"];
NSLog(@"Saved Window Position: X: %i Y: %i", cPx, cPy);
[userDefaults setObject:NSStringFromSize(s) forKey:@"selectionSize"];
NSLog(@"Saved Window Size: W: %i H: %i", cSw, cSh);
[userDefaults synchronize];
[selectionPointX setIntegerValue:cPx]; // selectionPointX is nil
}
@end
Я называю getSelection
из другого класса, передавая значения Это.
В интерфейсе Builder у меня есть NSObject с классом Preferences
, и из него я подключил выход к контроллеру. Но когда отладка selectionPointX
равна nil
и поэтому не обновляется мой TextField.
Я новичок в объективе-c, поэтому, возможно, я делаю это неправильно. Я много искал, но не могу найти решение.
Любая помощь приветствуется, спасибо.
EDIT: Я думаю, что я нашел эту проблему. Поскольку я вызываю метод из другого класса, я создаю другой экземпляр этого класса, и поэтому все соединения не подключены.
Я сделал это:
Preferences *prefs = [[Preferences alloc] init];
[prefs getSelection:(NSPoint)wPos :(NSSize)wSize];
Как я могу назвать тот же метод, но с использованием текущего экземпляра Preferences
, который загружается в XIB?