2010-11-19 13 views
1

Bir NSObjectController ürününün 'içerik' denetleyici anahtarına bağlı, tümü 'seçim' denetleyicisine bağlı olan çeşitli alanlara sahip bir düzenleme pencerem var. NSArrayController'ın anahtarı. Ayrıca seçimiyle birlikte aynı NSArrayController'a bağlı bir NSTableView'ım da var.Kakao bağlayıcılar, kullanıcı tıklatıncaya kadar düzenleme işlemlerini geciktirir 'Tamam'

Düzenleme penceremde, kullanıcı bir metin alanını terk eder etmez, değer NSTableView'a geri iletilir. Kullanıcı düzenleme penceresindeki 'Tamam'ı tıklayana kadar işlenen değeri nasıl durdurabilirim?

+0

Ben oluşturmaya çalıştınız: yani düzenleme penceresi için yeni ManagedObjectContext, ancak [context save] çağrısı yapmadan bile değişiklikler hemen yansıtılır. Bunun iyi bir yaklaşım olup olmadığını bilmiyorum. Ben hala ana ManagedObjectContext seçimine bağlanıyorum, bu niyetim gibi işe yaramaz. Seçimi bir bağlamdan diğerine kopyalamak mümkün mü? –

cevap

1

Ardından düzenleme penceresinde değerlerini saklamak için geçici NSMutableDictionary nesne kullanın ve ne zaman kullanıcı tıklama 'Tamam' Sözlüğün değerlerini kullanarak bir nesne örneğini:

NSManagedObject* obj = [NSEntityDescription insertNewObjectForEntityForName:@"MyObject"            
         inManagedObjectContext: self.managedObjectContext]; 

[obj setValuesForKeysWithDictionary:tempObject]; 
0

Düzenleme penceresinde geçici bir değer kullanmanızı öneririm. Daha sonra, kullanıcı 'Tamam'ı tıkladığında, aslında değeri atayın.

+0

Demek istediğin ... [obj value] '' '[obj valueTransient]' gibi bir sarmalayıcıya bağlanır, sonra kullanıcı OK (Tamam) 'ı tıklattığında, devam eder ve' [obj setValue: [objValueTransient]] 'komutunu kullanır. ? Bir şeyleri özlüyorum gibi hissediyorum. –

+0

Maalesef, kullanıcı Tamam'a ulaşana kadar tamamen ayrı bir nesne kullanmak istedim – griotspeak