我刚刚开始从iOS进行Mac编程,并正在玩绑定。
我正在尝试创建一个简单的目录弹出窗口,其中显示最近选定目录的历史记录,最后一个元素将显示other...
,这将打开opendialog框。
我似乎无法弄清楚如何将NSPopupButton绑定到我的模型中。
它的设置如下: MainUIViewController,NSController,NSObject控制器都在nib中连线
我确实将MainUIViewController中的插座连接到NIB中的Directory Array Controller 我有一个eachDirectory类,还有一个DirectoryArrayController(NSObject)类我以这种方式绑定NSPopupButton:
我将目录阵列控制器绑定到目录弹出阵列控制器
这是连接到目录弹出阵列控制器的.h文件
@interface DirectoryPopupArrayController : NSObject
@property (weak) IBOutlet NSPopUpButton *directoryPopupButton;
@property (nonatomic) IBOutlet NSMutableArray *allDirectoryHistory;
@property (nonatomic) eachDirectory *currentlySelectedDirectory;
@end
我使用相应的.m文件中的以下代码填写一些示例目录信息
- (void)awakeFromNib {
[super awakeFromNib];
//testing sample directories
self.allDirectoryHistory = [[NSMutableArray alloc] initWithCapacity:10];
NSString *name;
eachDirectory *newDirectoryName;
for (int i = 0; i < 5; i++) {
name = [NSString stringWithFormat:@"directory %d", i];
newDirectoryName = [[eachDirectory alloc] initWithDirectoryName:name];
[self.allDirectoryHistory addObject:newDirectoryName];
}
}
这是eachDirectory.h的代码
@interface eachDirectory : NSObject
@property (nonatomic) NSString *directoryPath;
@property (nonatomic) NSString *directoryVisibleName;
-(id) initWithDirectoryName:(NSString *)newName;
@end
现在当我转到我的代码时如果我放置代码来创建Array并将Array控制器直接绑定到UIViewController.m文件似乎工作正常。 我想要做的是在一个单独的类文件中处理所有数组的东西,只返回主控制器的最终目录选择。当我如上所述将NSArrayController绑定到NIB中的Object控制器时,我在弹出窗口中没有显示任何内容,我不明白为什么!
非常感谢任何帮助,对于冗长的帖子感到抱歉 - 只是想让自己清楚。