2012-11-28 61 views
1

我想用NSString的數組填充NSPopUpButton。我也希望能夠在NSPopUpButton中設置選定的項目並獲取選定的值。有沒有辦法使用綁定來做到這一點?以下是我所擁有的只有數組控制器的內容綁定到arraedObjects的內容。將NSPopUpButton綁定到NSArray

@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

設置伊娃在應用程序控制器來保存您的選擇:

@property (copy) NSString *selection; 

,當然還有,合成它在你的實現文件。

讓這些綁定到你的NSPopUpButton實例:

內容:

綁定到:Array控制器(除非你給你的陣列控制器的另一個名字)

控制鍵:arrangedObjects

內容值:

綁定到:Array控制器(除非你給你的陣列控制器的另一個名字)

控制鍵:arrangedObjects

型號主要路徑:(字符串,我一直使用「說明」)

選定對象:

結合:應用程序委託(除非你給你的應用程序委託的另一個名字)

重點型號路徑:self.selection

最後,由於您的彈出按鈕現在綁定到selection,這是你如何設置您最初的選擇:在你的努力

self.selection = firstObject; 

祝你好運。

相關問題