iOS uygulamamın arabiriminde, & yineleme düğmesini açık bir şekilde sonlandırıyorum (çalkalama işlemi oldukça ağır bir işlemdir ve bu bağlamda, geri gönderimler oldukça sık gerçekleştirilir). Normalde, NSUndoManager'ın canUndo ve canRedo anahtar yollarını gözlemlemek ve &'u etkinleştirmek için KVO'yu kullanacağım, bildirimler geldikçe düğmeleri devre dışı bırakacağız. Ne yazık ki, NSUndoManager bu anahtar yollar için KVO-uyumlu değil, ya da en azından I ' Bildirimler açısından bir şey göremiyorum.NSUndoManager ve geri alma düğmesini etkinleştirme/devre dışı bırakma
Benim sorum şu: Bu nasıl çalışıyor? KVO ile yanlış mı yapıyorum? (Ben & üç kez kontrol ettim ama her zaman bu olasılık var). Bunu düşünmemek için başka bir yolu var mı? (Sadece runloop her döndüğünde -canUndo değerini kontrol etmekteyim ama benim için kötü bir kod kokusu var).
Awesome - NSUndoManagerWillCloseUndoGroupNotification daha önce kaçırdığım bir oyundur. Artık her şey mantıklı. Teşekkürler @aclark. –
Son takip: Hepsi mükemmel çalıştı. –
Dokümantasyonda şu yazıyor: "Bir NSUndoManager" nesnesinden önce gönderilen, "endUndoGrouping" yönteminin uygulanmasında oluşan bir geri alma grubunu kapatır. " Ancak, tek bir geri alma işlemini kaydettiğinizde (ör. '-registerUndoWithTarget: selector: object:') kaydedildiğini doğrulayabilirim. "Notification.object" ('NSUndoManager') 'da' canUndo 'öğesini çağırmak ve kullanıcı arayüzündeki herhangi bir" geri alma "düğmesini etkinleştirmek/devre dışı bırakmak çok yararlıdır. –