[MacRuby-devel] Implementing Undo In RaiseMan / MacRuby

John Shea johnmacshea at gmail.com
Mon Oct 26 01:22:32 PDT 2009


Hi Steve,
did you solve this one?
if not perhaps you could post somewhere the MyDocument.rb code for us to
look at?
Cheers,
J

On Sun, Oct 25, 2009 at 7:17 PM, s.ross <cwdinfo at gmail.com> wrote:

> 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
>
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20091026/f7dbe1e5/attachment-0001.html>


More information about the MacRuby-devel mailing list