我有一個NSArrayController,我填寫awakeFromNib
方法。該數據具有密鑰:id
,name
和description
。我有一個ComboBox和一個綁定到NSArrayController的TextField,第一個是名字,第二個是這個ID。如果我更改了組合框中的選擇,我希望TextField中的值發生更改,反之亦然。我閱讀了TextField和ComboBox綁定的文檔,但我不明白如何實現這一點。NSComboBox和NSTextField綁定
1
A
回答
1
這裏的訣竅是你需要在其他地方放置NSComboBox的值。 NSArrayController適用於向NSComboBox提供庫存值,但您可以將任意值輸入到NSArboBox中,該NSComboBox可能不在NSArrayController的contentArray中,因此您需要其他位置放置該值並不奇怪。我能夠通過只把一個簡單的值在AppDelegate中這樣迅速嘲笑這件事:
@interface SOAppDelegate : NSObject <NSApplicationDelegate>
@property (assign) IBOutlet NSWindow *window;
// The NSArrayController you were talking about...
@property (assign) IBOutlet NSArrayController* popupValues;
// The other place to store data...
@property (retain) id comboBoxValue;
@end
然後在執行:
@implementation SOAppDelegate
@synthesize window = _window;
@synthesize comboBoxValue = _comboBoxValue;
- (void)dealloc
{
[_comboBoxValue release];
_comboBoxValue = nil;
[super dealloc];
}
-(void)awakeFromNib
{
[super awakeFromNib];
NSMutableDictionary* item1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithUnsignedInteger: 1], @"id",
@"Item 1 Name", @"name",
@"Item 1 Description", @"description",
nil];
NSMutableDictionary* item2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithUnsignedInteger: 2], @"id",
@"Item 2 Name", @"name",
@"Item 2 Description", @"description",
nil];
NSMutableDictionary* item3 = [NSMutableDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithUnsignedInteger:3], @"id",
@"Item 3 Name", @"name",
@"Item 3 Description", @"description",
nil];
NSMutableArray* array = [NSMutableArray arrayWithObjects: item1, item2, item3, nil];
self.popupValues.content = array;
}
@end
那麼對於綁定,我把它像這樣:
NSComboBox:
- 內容 - >陣列Controller.arrangedObjects 個
- 含量值 - >陣Controller.arrangedObjects.name
- 價值 - >應用Delegate.comboBoxValue(檢查
Continuously Updates Value
如果你想的NSTextField被更新信由字母,你在NSComboBox在打字)
的NSTextField:
- 價值 - >應用Delegate.comboBoxValue(檢查
Continuously Updates Value
如果你想NSComboBox進行更新信由字母,你在的NSTextField在打字)
如果您希望鍵入要添加到數組中的新值,那麼我很抱歉地說,僅僅通過這兩個控件和綁定就不容易實現。這有點複雜。但簡單情況下的訣竅是,您需要一些地方來存儲值其他比您用來提供預先加載的值到NSComboBox的NSArrayController。
相關問題
- 1. 綁定到NSComboBox
- 2. 綁定nsrect和nstextfield
- 3. NSCombobox綁定問題
- 4. NSComboBox與綁定到NSTreeController
- 5. 綁定NSComboBox來枚舉?
- 6. 輕鬆地將NSComboBox轉換爲NSTextField
- 7. 製作NSComboBox當單擊NSTextField時出現
- 8. NSTextField和NSComboBox在Lion中的繪製方式不同
- 9. 將NSColorWell綁定到NSTextField
- 10. 將NSTextField綁定到NSNumber
- 11. 綁定的NSTextField到的NSString
- 12. 綁定不更新NSTextField
- 13. NSTextField綁定導致EXC_BAD_ACCESS
- 14. NSTextField commit編輯綁定
- 15. NSComboBox綁定到NSArrayController不更新
- 16. 將可可NSComboBox值綁定到對象
- 17. 可可綁定:將NSComboBox選擇綁定到NSObjectController中的字段
- 18. 以統一的方式從NSTextField,NSComboBox獲取值?
- 19. 使用nil minValue將NSSlider綁定到NSTextField?
- 20. 清除綁定到nsmutablestring的NSTextfield
- 21. 爲綁定到NSString的NSTextField啓用綁定
- 22. 綁定到NSTextField的作品;綁定到NSTextView不?
- 23. NSComboBox - 獲取選定的信息和NSComboBoxDataSource
- 24. 編程加載一個NSComboBox的鍵/值(或綁定?)
- 25. NSComboBox顯示屬性的coredata實體綁定的獨特項目
- 26. NSComboBox綁定不工作在基於視圖的NSTableView中
- 27. 以編程方式將NSComboBox綁定到NSArrayController
- 28. 讓NSComboBox在其綁定的NSMutableArray更新時更新
- 29. NSCombobox,NSTimer
- 30. NSTextField和controlTextDidEndEditing
我的意見,這個建議並沒有解決問題。正如問題所說:「我有一個ComboBox和一個TextField綁定到NSArrayController,第一個是名字,第二個是id,如果我改變了ComboBox中的選擇,我希望TextField中的值改變,反之亦然」。 所以問題是在nscombobox中選擇值,如「name」,並在NSTextView中顯示相對ID。在你的回答之後,nstextview將顯示與組合框中完全相同的東西。兩次相同的數據。 – sundsx