You are absolutely right ! Stupid mistake... Thanks !!
Another thing I have noticed : a recessed button with the Toggle mode does not seem to do this when connected with MonoObjc... I mean : the state of the button changes, but nothing visually happens... In the cocoa simulator ; it does what it is supposed to do... Did I forget something ? Thanx !!! Mario From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Laurent Etiemble Sent: donderdag 27 november 2008 20:45 To: users@lists.monobjc.net Subject: Re: [EMAIL PROTECTED] Data binding Hello, I think your method signature is wrong. It should returns an Id: [ObjectiveCMessage("tableView:objectValueForTableColumn:row:")] public Id objectValueForTableColumn(NSTableView aTableView, NSTableColumn aTableColumn, int rowIndex) See NSTableDataSource reference to get the signatures (http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit /Protocols/NSTableDataSource_Protocol/Reference/Reference.html#//apple_r ef/doc/uid/20000122-BCIJJEBC) Regards, Laurent Etiemble. 2008/11/27 Mario De Clippeleir <[EMAIL PROTECTED]>: > Hi, > > This is still not working... The same error exists... > > This is the method that causes the error : > > > [ObjectiveCMessage("tableView:objectValueForTableColumn:row:")] > public object objectValueForTableColumn(NSTableView > aTableView,NSTableColumn aTableColumn,int rowIndex) > { > Console.WriteLine("get Object"); > Console.WriteLine(items[rowIndex]); > NSString testString = (NSString) items[rowIndex]; > Console.WriteLine(testString.Length); > return testString; > } > > Thanks, > > Mario > On 26 Nov 2008, at 18:57, Laurent Etiemble wrote: > >> Hello, >> >> You must return a subclass of Id, thus a NSString instead of String. >> Cast it to NSString (there is an implicit conversion). >> >> Regards, Laurent Etiemble. >> >> 2008/11/26 Mario De Clippeleir <[EMAIL PROTECTED]>: >>> >>> Hi, >>> >>> >>> >>> I am trying to bind a DataSource to a TableView, but when trying to get >>> the >>> objectValueForTableColumn, I get an error : >>> >>> """" >>> >>> item added >>> >>> numberOfRows call >>> >>> reloaded >>> >>> get Object >>> >>> Stacktrace: >>> >>> at (wrapper managed-to-native) Monobjc.Dynamic.Messaging.OBJC_MSGSEND >>> [System_Void]().objc_msgSend (intptr,intptr) <0x00004> >>> >>> at (wrapper managed-to-native) Monobjc.Dynamic.Messaging.OBJC_MSGSEND >>> [System_Void]().objc_msgSend (intptr,intptr) <0xffffffff> >>> >>> at (wrapper runtime-invoke) Monobjc.Dynamic.Messaging.OBJC_MSGSEND >>> [System_Void]().runtime_invoke_void_intptr_intptr >>> (object,intptr,intptr,intptr) <0xffffffff> >>> >>> at (wrapper managed-to-native) >>> System.Reflection.MonoMethod.InternalInvoke >>> (object,object[],System.Exception&) <0x00004> >>> >>> at (wrapper managed-to-native) >>> System.Reflection.MonoMethod.InternalInvoke >>> (object,object[],System.Exception&) <0xffffffff> >>> >>> at System.Reflection.MonoMethod.Invoke >>> >>> (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[] ,System.Globalization.CultureInfo) >>> <0x000b5> >>> >>> at System.Reflection.MethodBase.Invoke (object,object[]) <0x00020> >>> >>> at Monobjc.Generation.MessagingGenerator.SendMessage >>> (string,intptr,intptr,object[]) <0x0010b> >>> >>> at Monobjc.ObjectiveCRuntime.SendMessage >>> (Monobjc.IManagedWrapper,string,object[]) <0x00070> >>> >>> at Monobjc.Cocoa.NSApplication.Run () <0x0002b> >>> >>> at Monobjc.Cocoa.NSApplication.RunApplication () <0x0004b> >>> >>> at TestCocoaGui.Program.Main (string[]) <0x00034> >>> >>> at (wrapper runtime-invoke) >>> TestCocoaGui.Program.runtime_invoke_void_string[] >>> (object,intptr,intptr,intptr) <0xffffffff> >>> >>> Abort trap >>> >>> """ >>> What causes this ? The object i am returning is a string... >>> Thx, >>> Mario >>> >>> >>> >>> >>> >>> From: Duane Wandless [mailto:[EMAIL PROTECTED] >>> Sent: vrijdag 21 november 2008 16:51 >>> To: users@lists.monobjc.net >>> Subject: Re: [EMAIL PROTECTED] Data binding >>> >>> >>> >>> Not knowing what you have accomplished already I will briefly describe >>> what >>> I have done. When I find time I'll post something with pictures. My >>> main >>> application is a Cocoa ObjC app that controls the GUI. When the app >>> starts >>> the very first thing I do is load my C# EXE, note not a DLL. A bug/issue >>> exists that loading a DLL does not completely init the mono environment. >>> >>> Using Monobjc I export my C# classes to the Cocoa world. This is why the >>> mono executable must be properly initialized first, so that when the NIB >>> files are loaded by Cocoa it will find my registered mono classes. >>> >>> In the NIB file I add an NSObject and set the class to be the name of my >>> C# >>> class, say MonoObject. Add some class outlets to the MonoObject in the >>> NIB >>> file that point to array/tree controllers within that NIB file. The tree >>> controller's mode should be class and the class name most likely will be >>> NSMutableDictionary, though it can be a class defined in mono as well. >>> You >>> can add keys to these controllers to make binding easier on the table >>> views. Speaking of the table views, you simply point them to the tree >>> controller and bind as usual. >>> >>> Back in your C# class you will have a NSTreeController variable that is >>> hooked up by monobjc to the tree controller in the NIB file. Whenver >>> appropriate you can, from within C#, clear the tree controller data, add >>> data, remove data etc. I call something like >>> treeController.addObject(<myobject>) where myobject is an instance of a >>> C# >>> class. That class then must register the methods to expose the keys you >>> have setup in the tree controller. >>> >>> You most likely will need to send a reload data notification to the views >>> that use these tree controllers. So you should also set class outlets >>> that >>> point to these views so that you can send them reload data messages. >>> PostNotification is a nice way to send messages to your mono class so >>> that >>> it can load the data as needed. >>> >>> Another solution is to set your table view's/outline view's datasource to >>> be >>> MonoObject. Just provide the datasource methods in your C# class. I >>> have >>> not implemented this way but I think I'm leaning toward switching. >>> >>> Not a lot of detail here but hopefully it helps. >>> Duane >>> >>> On Fri, Nov 21, 2008 at 9:44 AM, Mario De Clippeleir <[EMAIL PROTECTED]> >>> wrote: >>> >>> Hi, >>> >>> >>> >>> I am trying monobjc to port an existing .NET application to the Mac. I >>> would >>> like to use a DLL in which an object model resides. When loading a file, >>> the >>> object model is being filled. This logic is all in the library. >>> >>> Now, my question is : if I want to use binding for the Mac gui, do I need >>> the "wrap" the object classes from the library into Managed object >>> classes ? >>> What would be the best way to handle this ? >>> >>> >>> >>> On another note : In the latest monobjc distribution, I can't seem to get >>> the TwoManyControllers project working. "The document >>> TwoManyControllers.exe >>> could not be opened. TwoManyControllers cannot open files in the EXE File >>> format." >>> >>> I mean, it loads up, but you can't do anything... >>> >>> Does anyone else has this problem ? >>> >>> >>> >>> Thanks, >>> >>> >>> >>> Mario >>> >>> > >