我想使用NSStrings数组填充NSPopUpButton。我还希望能够在NSPopUpButton中设置所选项目以及获取所选值。有没有办法使用绑定来做到这一点?这就是我所拥有的只有数组控制器的内容绑定到arragedObjects。
@interface AppDelegate : NSObject <NSApplicationDelegate>
{
NSMutableArray *myArray;
IBOutlet NSPopUpButton *myPopUpButton;
IBOutlet NSArrayController *processArrayController;
}
@property (assign) IBOutlet NSWindow *window;
@end
@implementation AppDelegate
@synthesize window = _window;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
NSString *firstObject = @"Lustre";
NSString *secondObject = @"TwoTone Laser";
NSString *thirdObject = @"Laser Mark";
NSString *forthObject = @"Double Lustre";
NSString *fifthObject = @"CG Ink";
// Create the array
myArray = [[NSMutableArray alloc] initWithObjects:firstObject, secondObject,
thirdObject, forthObject, fifthObject, nil];
// Sort the array
[myArray sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
// Set contents of the array controller that is bound to the popup button
[processArrayController setContent:myArray];
// Set a selection to an item of the popup button
[myPopUpButton selectItemWithTitle: firstObject];
}
@end
答案 0 :(得分:0)
在应用程序控制器中设置ivar以保留您的选择:
@property (copy) NSString *selection;
当然,请在您的实施文件中进行综合。
将这些绑定设置为NSPopUpButton实例:
内容:强>
绑定到:阵列控制器(除非你给你的阵列控制器另一个名字)
Controller Key:arrangeObjects
内容值:
绑定到:阵列控制器(除非你给你的阵列控制器另一个名字)
Controller Key:arrangeObjects
模型关键路径:(对于字符串,我总是使用'描述')
所选对象:
Bind To:App Delegate(除非您已向应用程序委托另一个名称)
模型关键路径:self.selection
最后,由于您的弹出按钮现在已绑定到selection
,因此您可以设置初始选择:
self.selection = firstObject;
祝你工作顺利。