[MacRuby-devel] Implementing Undo In RaiseMan / MacRuby
s.ross
cwdinfo at gmail.com
Sun Oct 25 11:17:44 PDT 2009
I'm trying to implement the RaiseMan example from Aaron Hillegass's
book in MacRuby. All has gone pretty well until I reached undo. The
idea is to handle the insertObject message each time a Person is
inserted and manipulate the undo stack.
def insertObject(p, inEmployeesAtIndex:index)
NSLog("adding #{p} to #{employees}") # <= Not called, huh?
undo = @undoManager
undo.prepareWithInvocationTarget(self,
removeObjectFromEmployeesAtIndex:index)
if !undo.isUndoing
undo.setActionName("Insert Person")
end
employees.insertObject(p, atIndex:index)
end
The Objective-C signature for this is:
- (void)insertObject:(Person *)p inEmployeesAtIndex:(int)index
Works in Objective-C but in my Ruby, the method is not recognized as a
handler to be invoked when a Person object is to be inserted in the
employees array. I should note that I created the employees array
using Ruby syntax:
@employees ||= []
Changing this to:
@employees ||= NSMutableArray.alloc.init
makes no difference in this scenario.
Any hints with respect to what I'm missing here?
Thanks,
Steve
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20091025/1e895d73/attachment.html>
More information about the MacRuby-devel
mailing list