Hi Tom,

I can't seem to understand what is wrong, I guess, since you said everything else works, that you did call the necessary `framework "Foundation"`?
Could you maybe provide us some test project, so that we can reproduce and maybe trace the error better? :-)

Thank you!
-- 
Thibault Martin-Lagardette



On Nov 26, 2010, at 07:07, Tom Jordan wrote:

Hello,

I'm encountering some weird behavior when trying to update a view using  windowControllerDidLoadNib after loading in a persistent document.  
When I provide windowControllerDidLoadNib a single argument, as shown below (and required by the NSDocument class definition and in every example I've seen),
Xcode says: `windowControllerDidLoadNib:': wrong number of arguments (1 for 0) (ArgumentError)
If I don't provide any argument, it says: undefined method `windowControllerDidLoadNib' for #<MyDocument:0x200646660> (NoMethodError)
I've tried every combination of one or no args for both the method signature and "super" call on the next line, and I can't seem to get any different results.
This is my first time trying to get persistence going, but I've read a lot about it, and everything else is working well.. it saves and loads, but I can't seem to get this hook 
working to update the GUI upon loading.  


class MyDocument < NSDocument

attr_accessor :loadedmodel, :root #outlet to model field of controller


# Name of nib containing document window
def windowNibName
'MyDocument'
end


# Document data representation for saving (return NSData)
def dataOfType(type, error:outError)
outError.assign(NSError.errorWithDomain(NSOSStatusErrorDomain, code:-4, userInfo:nil))
NSKeyedArchiver.archivedDataWithRootObject(@root.model)
end

# Read document from data (return non-nil on success)
def readFromData(data, ofType:type, error:outError)
outError.assign(NSError.errorWithDomain(NSOSStatusErrorDomain, code:-4, userInfo:nil))
@loadedmodel = NSKeyedUnarchiver.unarchiveObjectWithData(data)
end

# Return lowercase 'untitled', to comply with HIG
def displayName
fileURL ? super : super.sub(/^[[:upper:]]/) {|s| s.downcase}
end

def windowControllerDidLoadNib(aController) 
super(aController)
@root.model = @loadedmodel
NSLog("model loaded")
end

end

Regards, 
 
    Tom Jordan 
    
_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel