Re: “EXC_BAD_ACCESS” on Custom TableV iew with custom NSCell when clicking.
Hello Corbin. ok, so I read your blog post, its great, I love it. I followed what you said there with my application, when the app crashes I see the address, I search for it and I see only one result, so I click the arrow next to the address to check the history and I have this situation. first I have a Malloc, responsible CoreData, responsible caller [NSSQLCore _prepareResultsFromResultSet:usingFetchPlan:withMatchingRows:], and right after that event I have the Zombie. responsible CoreData, Responsible caller [NSManageObject objectDictionaryWithValuesForKeys:] So when I click the zombie and check the extended view, the last line of code that I have control over is the accessor for the userDictionary attribute in the User ManagedObject, which has these lines of code. -(NSDictionary *)userDictionary{ return [self dictionaryWithValuesForKeys:[NSArray arrayWithObjects:@firstName,@lastName,@avatar,@title,nil]]; } I also have this line of code in the User ManageDObject +(NSSet *)keyPathsForValuesAffectingUserDictionary{ return [NSSet setWithObjects:@firstName,@lastName,@avatar,@title,nil]; } dunno if this affects in somehow.. I stilld on't get what for is it, i think its to track changes of the object for those keys. So, if I have comming back to the initial quesiton, if I have no ivars in the cusotm NSCell, Im just drawing the values in the values like this -(void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView{ NSDictionary * cellValues = [self objectValue]; NSString * firstName = [cellValues valueForKey:@firstName]; NSString * lastName = [cellValues valueForKey:@lastName]; ... } then what am I doing wrong? thx. Gustavo On Feb 17, 2010, at 11:31 PM, Corbin Dunn wrote: On Feb 17, 2010, at 2:14 PM, Gustavo Pizano wrote: On Feb 17, 2010, at 11:03 PM, Jim Correia wrote: On Feb 17, 2010, at 4:41 PM, Gustavo Pizano wrote: Maybe I misunderstood I must conform NSCopying protocol also even when using core data? If you have an NSCell subclass which adds iVars, you must implement -copyWithZone: to do correct memory management. Your -copyWithZone: needs to work correctly within the bounds of the object ownership rules. If you have an object iVar which shouldn’t be copied, but is still an owned reference, then you can (and must) retain it instead in the copy. (You should do this for all cells with iVars, not just ones with object iVars, so that your subclass will behave correctly in the future even if NSCell doesn’t implement its behavior using NSCopyObject.) - Jim Hello Jim HMM digging more into the problem.. definitely it seems because Im not copying properly the NSManagedObject Paul Robinson says in one old post: The short answer is that you need to override the setObjectValue: method (which tries to copy your uncopyable NSManagedObject) in your custom NSCell to convert your NSManagedObject into an NSValue (which is copyable). And taking what you said, so if my User ManagedObject returns me the NSDictionary with the key-value of its attributes, then in the cell I must set it as an ivar within the method setObjectValue, then implement the copyWithZone and return the copy of it isn't it? right now I don't have any ivar in my custom cell.. sooo . := :S. I think Jim and I are leading you off track; if your cell has no extra ivars, then you don't have to worry about the cell implementing copyWithZone:. I still think you should read my blog posting and see why the crash happens with zombies on. corbin ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re : Proper way to initialize application support file
Files that are necessary should be inside your app bundle, usually. I put some files into the app bundle which were essential for the app to run - but also needed to be modified at run time. The first time our app was installed on a server ( for a number of users to have access to ) we got into trouble as the sysadmin would not give write permission on the application folder to anybody. Is there another way to do this ? Peter ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Re : Proper way to initialize application support file
On 18 Feb 2010, at 09:36, Peter Hudson wrote: Files that are necessary should be inside your app bundle, usually. I put some files into the app bundle which were essential for the app to run - but also needed to be modified at run time. Those definitely shouldn't be changed inside the app bundle, as you'll break your code's identity. The first time our app was installed on a server ( for a number of users to have access to ) we got into trouble as the sysadmin would not give write permission on the application folder to anybody. Is there another way to do this ? You could _distribute_ them in the app bundle, then copy the files to ~/Library/Application Support/com.yourcompany.yourapp/ when it is first launched. Use and change the deployed copies from then on. Cheers, Graham. -- Graham Lee http://blog.securemacprogramming.com/ Coming soon - Professional Cocoa Application Security http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0470525959.html ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
cocoa API to get List of hard disk Partitions
Hi, Can any one help me out on How I can get the List of all hard disk partions mounted on the the System along with the Icon, just like Disk Utility application does. (Image below.) [image: ?ui=2view=attth=126df98c109f6b52attid=0.1disp=attdrealattid=ii_126df98c109f6b52zw] I have used the NSWorkspace : iconForFile:path, by passing the / for the Path and this would return an image of the boot partions only. thanks, ~Arjun Picture 2.png___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Spotlight while running windows modal
On 18 Feb 2010, at 05:30, Kiel Gillard wrote: Hi all, I'm trying to cancel a modal NSAlert when Spotlight determines a file exists in the file system. I create and start the NSMetadataQuery before I run the alert modal. However I do not receive notifications of changes to my metadata query while my application is running modal. The docs indicate NSMetadataQuery and MDQuery operate on particular modes of an application's run loop however I am required to run the NSAlert modal. I used an NSAlert with a modal session but that produced strange results. These results did not include the observer receiving the appropriate notifications for changes to my metadata query. Is there some way I can have the best of both worlds? You could try using a modal sheet, if it fits your modal requirements: // show the save sheet [NSApp beginSheet:[self window] modalForWindow:_modalForWindow modalDelegate:self didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) contextInfo:NULL]; I use such a configuration and my app continues to receive events from my run loop attached network sources. Regards Jonathan Mitchell Developer http://www.mugginsoft.com Thanks in advance, Kiel ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/jonathan%40mugginsoft.com This email sent to jonat...@mugginsoft.com ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: cocoa API to get List of hard disk Partitions
On 18/02/2010, at 8:44 PM, Arjun SM wrote: Hi, Can any one help me out on How I can get the List of all hard disk partions mounted on the the System along with the Icon, just like Disk Utility application does. (Image below.) [image: ?ui=2view=attth=126df98c109f6b52attid=0.1disp=attdrealattid=ii_126df98c109f6b52zw] I have used the NSWorkspace : iconForFile:path, by passing the / for the Path and this would return an image of the boot partions only. See this sample code from Apple http://developer.apple.com/mac/library/samplecode/SourceView/index.htm HTH, Kiel thanks, ~Arjun ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/kiel.gillard%40gmail.com This email sent to kiel.gill...@gmail.com ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
NSPropertyListSerialization error with apparently OK data
I have a structure I'm trying to write as an xml plist. The structure is an array of dictionaries, each dictionary contains a string catname and another array of dictionaries, items. The second level of dictionaries consist of two strings each, id and name. Example: (gdb) po catList NSCFArray 0x2e846a30( { catname = Legends Inset Maps; items = {( { id = 7CBC1609-ADFB-4CA9-A748-CABE9076842F; name = World - eastern hemisphere; }, { id = 402DEB4D-8C2E-4F4D-9151-E6BA01D194E7; name = World - western hemisphere; }, { id = 6500292B-FDE1-45B7-AFD9-8A0136B25717; name = Legend 4; }, { id = CC96E4F2-1B20-4496-8962-15B617B3FAF9; name = Legend 2; }, ... hundreds of similar entries omitted... )}; }, { catname = DrawKit Defaults; items = {( { id = 6B1A0430-204A-4012-B96D-A4EE9890A2A3; name = Basic Track; }, { id = 1DFD6D8A-6C8B-4E4B-9186-90F64654F79F; name = Basic; }, { id = 326CF635-7863-42C6-900D-CFFC7D57505E; name = Helvetica 18.0pt; } )}; } ) When I submit this array to the serialization method: NSData* data = [NSPropertyListSerialization dataFromPropertyList:catList format:NSPropertyListXMLFormat_v1_0 errorDescription:errDesc]; (I know this is deprecated from 10.6 forward but I need to support 10.5 for now) I get the error: Property list invalid for format Since I'm only using arrays, dictionaries and strings, that should be a valid plist, shouldn't it? I've missed something, but what? I'm also wondering why some strings appear quoted and others are not when I dump the structure in gdb, and whether that's significant. --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSPropertyListSerialization error with apparently OK data
Don't know, but maybe 'id' is reserved. I seem to recall a similar issue with archiving strings that were NULL or nil or something. Matt On 18 Feb 2010, at 11:25:10, Graham Cox wrote: I have a structure I'm trying to write as an xml plist. The structure is an array of dictionaries, each dictionary contains a string catname and another array of dictionaries, items. The second level of dictionaries consist of two strings each, id and name. Example: (gdb) po catList NSCFArray 0x2e846a30( { catname = Legends Inset Maps; items = {( { id = 7CBC1609-ADFB-4CA9-A748-CABE9076842F; name = World - eastern hemisphere; }, { id = 402DEB4D-8C2E-4F4D-9151-E6BA01D194E7; name = World - western hemisphere; }, { id = 6500292B-FDE1-45B7-AFD9-8A0136B25717; name = Legend 4; }, { id = CC96E4F2-1B20-4496-8962-15B617B3FAF9; name = Legend 2; }, ... hundreds of similar entries omitted... )}; }, { catname = DrawKit Defaults; items = {( { id = 6B1A0430-204A-4012-B96D-A4EE9890A2A3; name = Basic Track; }, { id = 1DFD6D8A-6C8B-4E4B-9186-90F64654F79F; name = Basic; }, { id = 326CF635-7863-42C6-900D-CFFC7D57505E; name = Helvetica 18.0pt; } )}; } ) When I submit this array to the serialization method: NSData* data = [NSPropertyListSerialization dataFromPropertyList:catList format:NSPropertyListXMLFormat_v1_0 errorDescription:errDesc]; (I know this is deprecated from 10.6 forward but I need to support 10.5 for now) I get the error: Property list invalid for format Since I'm only using arrays, dictionaries and strings, that should be a valid plist, shouldn't it? I've missed something, but what? I'm also wondering why some strings appear quoted and others are not when I dump the structure in gdb, and whether that's significant. --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/mgough%40humyo.com This email sent to mgo...@humyo.com ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSPropertyListSerialization error with apparently OK data
On 18/02/2010, at 10:29 PM, Matt Gough wrote: Don't know, but maybe 'id' is reserved. Well, I just tried changing that to something else and I get the same problem. I also tried using NSPropertyListBinaryFormat_v1_0 and I still get the same error. --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSPropertyListSerialization error with apparently OK data
Don't think so, archiving is not serialization and it's just a dump of the object in XML/binary format, so you can't have reserved keyword. The plist look definitively OK. (it's even possible to import it in Plist Editor as a text formatted plist if you remove the extra '{' '}' enclosing the inner array). I'm almost sure it will not help, but you may try the 10.6 function which returns an NSError. Maybe the NSError is more informative than the returned error string. And you can also try with subset of the list to determine if a specific entry in your list is the culprit. Le 18 févr. 2010 à 12:29, Matt Gough a écrit : Don't know, but maybe 'id' is reserved. I seem to recall a similar issue with archiving strings that were NULL or nil or something. Matt On 18 Feb 2010, at 11:25:10, Graham Cox wrote: I have a structure I'm trying to write as an xml plist. The structure is an array of dictionaries, each dictionary contains a string catname and another array of dictionaries, items. The second level of dictionaries consist of two strings each, id and name. Example: (gdb) po catList NSCFArray 0x2e846a30( { catname = Legends Inset Maps; items = {( { id = 7CBC1609-ADFB-4CA9-A748-CABE9076842F; name = World - eastern hemisphere; }, { id = 402DEB4D-8C2E-4F4D-9151-E6BA01D194E7; name = World - western hemisphere; }, { id = 6500292B-FDE1-45B7-AFD9-8A0136B25717; name = Legend 4; }, { id = CC96E4F2-1B20-4496-8962-15B617B3FAF9; name = Legend 2; }, ... hundreds of similar entries omitted... )}; }, { catname = DrawKit Defaults; items = {( { id = 6B1A0430-204A-4012-B96D-A4EE9890A2A3; name = Basic Track; }, { id = 1DFD6D8A-6C8B-4E4B-9186-90F64654F79F; name = Basic; }, { id = 326CF635-7863-42C6-900D-CFFC7D57505E; name = Helvetica 18.0pt; } )}; } ) When I submit this array to the serialization method: NSData* data = [NSPropertyListSerialization dataFromPropertyList:catList format:NSPropertyListXMLFormat_v1_0 errorDescription:errDesc]; (I know this is deprecated from 10.6 forward but I need to support 10.5 for now) I get the error: Property list invalid for format Since I'm only using arrays, dictionaries and strings, that should be a valid plist, shouldn't it? I've missed something, but what? I'm also wondering why some strings appear quoted and others are not when I dump the structure in gdb, and whether that's significant. --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/mgough%40humyo.com This email sent to mgo...@humyo.com ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/devlists%40shadowlab.org This email sent to devli...@shadowlab.org -- Jean-Daniel ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSPropertyListSerialization error with apparently OK data
On 18/02/2010, at 10:44 PM, Jean-Daniel Dupas wrote: And you can also try with subset of the list to determine if a specific entry in your list is the culprit. OK, seems likely to be the problem, unless it's the sheer size. The list has several thousand entries, but I haven't read of any restrictions anywhere. --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
NSTableViewDataSource Protocol
Hi, I am writing an app that needs to be able to target 10.5 at least and hopefully 10.4, but I have just found that the way that table views are handled has changed - does anyone have a link to some documentation for the old way to do things? Many thanks, Mikey___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re : Proper way to initialize application support file
I'm getting confused. It seems that any files that are 'essential to the running of the app' are placed in the bundle. It also seems that any files that are 'essential to the running of the app', if they are in the bundle, must not be modified. The type of files which I put in the bundle are both essential for the app to run and need ( from time to time ) to be modified. Copying from bundle to elsewhere and then modifying the copies is not a runner - as the user would want their format data back as it was when they restart the app. Peter ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSTableViewDataSource Protocol
On 18/02/2010, at 11:07 PM, Michael Davey wrote: I have just found that the way that table views are handled has changed That's news to the rest of us! NSTableView dataSource still works just fine. --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSTableViewDataSource Protocol
Weird, cos when I change the Active SDK in Xcode to 10.5 I get the following error: cannot find protocol declaration for 'NSTableViewDataSource' And the docs here: http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Reference/ApplicationKit/Protocols/NSTableDataSource_Protocol/Reference/Reference.html Suggest that it is available to 10.6 and later Any idea what I might be doing wrong? On 18 Feb 2010, at 12:14, Graham Cox wrote: On 18/02/2010, at 11:07 PM, Michael Davey wrote: I have just found that the way that table views are handled has changed That's news to the rest of us! NSTableView dataSource still works just fine. --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Re : Proper way to initialize application support file
On 18/02/2010, at 11:09 PM, Peter Hudson wrote: I'm getting confused. It seems that any files that are 'essential to the running of the app' are placed in the bundle. It also seems that any files that are 'essential to the running of the app', if they are in the bundle, must not be modified. The type of files which I put in the bundle are both essential for the app to run and need ( from time to time ) to be modified. Copying from bundle to elsewhere and then modifying the copies is not a runner - as the user would want their format data back as it was when they restart the app. Think of it this way. Files you open directly from your bundle should be considered READ ONLY. Therefore if you want to use a modified version, you have to copy them elsewhere so that they can be read/write, and that somewhere else is usually ~/Library/Application Support/your app/whatever I don't see a conflict between this and your users getting the modified versions when they rerun the app. The modified files are still right where you left them. Your app will need to perform some sort of merge between the unmodified bundle version and any modified versions it finds in app support, so that the total set of files the user is working with is the latest. It can be a lot of work - in fact I'm working on something like that right now. If you mean they need up-to-date files if the app is moved to another machine or installed for another user, there's not a lot you can do about that except instruct them to take the modified files with them. Most apps would not be designed that way. --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSTableViewDataSource Protocol
On 18/02/2010, at 11:21 PM, Michael Davey wrote: Weird, cos when I change the Active SDK in Xcode to 10.5 I get the following error: cannot find protocol declaration for 'NSTableViewDataSource' And the docs here: http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Reference/ApplicationKit/Protocols/NSTableDataSource_Protocol/Reference/Reference.html Suggest that it is available to 10.6 and later Any idea what I might be doing wrong? In 10.6, NSTableViewDataSource became a formal protocol, where previously it was an informal one. While the docs are strictly correct, they're a bit misleading since the methods of the protocol have been available since 10.0 If your datasource is declared thus: @interface MyDS NSTableViewDataSource ... @end you need to remove the angle bracket part for 10.5 --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSTableViewDataSource Protocol
All that's changed is it's gone from an informal protocol: @interface NSObject (NSTableViewDataSource) ... @end to a formal one: @protocol NSTableViewDataSource NSObject ... @end On 18 Feb 2010, at 12:07, Michael Davey wrote: Hi, I am writing an app that needs to be able to target 10.5 at least and hopefully 10.4, but I have just found that the way that table views are handled has changed - does anyone have a link to some documentation for the old way to do things? Many thanks, Mikey___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/cocoadev%40mikeabdullah.net This email sent to cocoa...@mikeabdullah.net ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSTableViewDataSource Protocol
My class is describes as follows: @interface AppController : NSObject MGTwitterEngineDelegate,NSTableViewDataSource I tried removing NSObject and putting it there, but that did not work - any clues? Thanks, btw On 18 Feb 2010, at 12:28, Graham Cox wrote: On 18/02/2010, at 11:21 PM, Michael Davey wrote: Weird, cos when I change the Active SDK in Xcode to 10.5 I get the following error: cannot find protocol declaration for 'NSTableViewDataSource' And the docs here: http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Reference/ApplicationKit/Protocols/NSTableDataSource_Protocol/Reference/Reference.html Suggest that it is available to 10.6 and later Any idea what I might be doing wrong? In 10.6, NSTableViewDataSource became a formal protocol, where previously it was an informal one. While the docs are strictly correct, they're a bit misleading since the methods of the protocol have been available since 10.0 If your datasource is declared thus: @interface MyDS NSTableViewDataSource ... @end you need to remove the angle bracket part for 10.5 --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Proper way to initialize application support file
On Feb 18, 2010, at 12:30 AM, Paul Johnson wrote: I see the data I get from the internet as not in the strictest sense 'necessary' for the program to run, just that it would be unable to do very much without it. So using my loose definition, the Application Support folder would be the place to create my data file. This does not to me sound like a loose definition, and in my opinion this is exactly the kind of circumstance in which you should use the Application Support folder. If that data is specific to a user, then put it in ~/Application Support/appInfo. You can (and should) get the path for such directories from NSPathUtilities: For the system's Application Folder: NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSSystemDomainMask, YES); s = [paths objectAtIndex:0]; For the user's Application Folder: NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); s = [paths objectAtIndex:0]; NSSearchPathForDirectoriesInDomains is described in Foundation Functions Reference. Values for the parameters (NSSearchPathDirectory and NSSearchPathDomainMask) are described in the Foundation Data Types Reference. Or just look at the enums declared in NSPathUtilities.h ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSTableViewDataSource Protocol
On 18/02/2010, at 11:37 PM, Michael Davey wrote: My class is describes as follows: @interface AppController : NSObject MGTwitterEngineDelegate,NSTableViewDataSource I tried removing NSObject and putting it there, but that did not work - any clues? Thanks, btw Yes, do what I told you, remove the NSTableViewDataSource from the protocol list, like this: @interface AppController : NSObject MGTwitterEngineDelegate --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Fwd: Re : Proper way to initialize application support file
Begin forwarded message: From: Peter Hudson peter.hud...@mac.com Date: 18 February 2010 12:46:55 GMT To: Graham Cox graham@bigpond.com Subject: Re: Re : Proper way to initialize application support file I started out this way to avoid exactly the problem you get from requiring users to move critical files around. Most of our users are not comfortable with computers, let alone moving files around ! Add in the problem of making sure they read the right pages of the manual ( if they can find it ) and then do this through language barriers ... ( we run in many languages ) .. Peter On 18 Feb 2010, at 12:22, Graham Cox wrote: On 18/02/2010, at 11:09 PM, Peter Hudson wrote: I'm getting confused. It seems that any files that are 'essential to the running of the app' are placed in the bundle. It also seems that any files that are 'essential to the running of the app', if they are in the bundle, must not be modified. The type of files which I put in the bundle are both essential for the app to run and need ( from time to time ) to be modified. Copying from bundle to elsewhere and then modifying the copies is not a runner - as the user would want their format data back as it was when they restart the app. Think of it this way. Files you open directly from your bundle should be considered READ ONLY. Therefore if you want to use a modified version, you have to copy them elsewhere so that they can be read/write, and that somewhere else is usually ~/Library/ Application Support/your app/whatever I don't see a conflict between this and your users getting the modified versions when they rerun the app. The modified files are still right where you left them. Your app will need to perform some sort of merge between the unmodified bundle version and any modified versions it finds in app support, so that the total set of files the user is working with is the latest. It can be a lot of work - in fact I'm working on something like that right now. If you mean they need up-to-date files if the app is moved to another machine or installed for another user, there's not a lot you can do about that except instruct them to take the modified files with them. Most apps would not be designed that way. --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSTableViewDataSource Protocol
OK, just did some reading on informal protocols, thanks a lot for your help Mikey On 18 Feb 2010, at 12:40, Graham Cox wrote: On 18/02/2010, at 11:37 PM, Michael Davey wrote: My class is describes as follows: @interface AppController : NSObject MGTwitterEngineDelegate,NSTableViewDataSource I tried removing NSObject and putting it there, but that did not work - any clues? Thanks, btw Yes, do what I told you, remove the NSTableViewDataSource from the protocol list, like this: @interface AppController : NSObject MGTwitterEngineDelegate --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Re : Proper way to initialize application support file
On 18/02/2010, at 11:46 PM, Peter Hudson wrote: I started out this way to avoid exactly the problem you get from requiring users to move critical files around. Most of our users are not comfortable with computers, let alone moving files around ! Add in the problem of making sure they read the right pages of the manual ( if they can find it ) and then do this through language barriers ... ( we run in many languages ) I'm not suggesting they do move the files around. Your app can move them around to do what it needs to do, and the user is none the wiser. They need not care if a resource they are using comes from the bundle or from app support, it Just Works, right? Since you haven't really defined what these files are or how they're used, I can only give general and vague suggestions. My app does something apparently similar - we supply a default set of content in the form of graphics and these come in the bundle. On first startup we copy the file to app support so that the user can customise and add to the available graphics. Currently this is just one file, so the latest is always the one in app support, but actually this is a drawback on a number of levels so I'm working on splitting this out into one file per graphic, and the app will combine the bundle (read only) files with the app support (read/write) files to present a unified set to the user. They don't care where they come from, they just use them. If the same app is copied/installed elsewhere, all the new installation gets is the original bundle set, not any new ones the other user made. That's completely normal and I would say expected behaviour. The simple fact is that you cannot reliably update your app as it runs by writing files to its bundle. So however you need it to work, this option is not available. --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
[SOLVED]: NSPropertyListSerialization error with apparently OK data
On 18/02/2010, at 10:51 PM, Graham Cox wrote: Turns out one of the arrays was actually a set, and thus invalid in a plist. Took a long time to realise that -valueForKey: on NSSet returns another set, not an array. Once realised, simply fixed. Five hours later... D'oh! --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
super call in the middle of a block of code ..
I have this piece of code in my UITableViewController subclass (that is also my tableview delegate) -(void)setEditing:(BOOL)editing animated:(BOOL)animated { if( editing ) preEditPath = [ [ [ self tableView ] indexPathForSelectedRow ] retain ]; [ super setEditing:editing animated:animated ]; if( !editing ) { [ [ self tableView ] selectRowAtIndexPath:preEditPath animated:YES scrollPosition:UITableViewScrollPositionNone ]; [ preEditPath release ]; preEditPath = nil; } } The object here is to catch the current selection on the tableview when the table goes into edit mode (because when it does, the selection is nil'ed with no delegate call) and then restore it when the table comes out of edit mode. In the meantime I'm using the delegate calls which do exist to deal with the case where the selected row is moved or deleted so I restore the right thing. The super call is in the middle of the block because I've observed that it's that super call which removes the selection whether you are entering or exiting edit mode, so if I call it right at the start of the block, the selection is nil'ed before I cache it, if I call super at the end of the block, the super call deselects the selection I just put back. But having a super call in the middle of an overriden method seems wrong to me, and a bit fragile, and it relies on the observation that that's where the selection is nil'ed. Is this unusual, totally wrong or ok? ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: The 64 pixels width limit on Windows
On Feb 17, 2010, at 9:52 PM, Hank Heijink (Mailinglists) wrote: On Feb 17, 2010, at 4:55 PM, Eric Gorr wrote: On Feb 4, 2010, at 3:13 PM, Hank Heijink (Mailinglists) wrote: On Feb 4, 2010, at 2:51 PM, Eric Gorr wrote: When I am resizing my window, I have a delegate method windowWillResize:toSize: which is being called. What I am finding odd is that the width of the size being passed in will never go below 64 pixels even if the width for contentMinSize and minSize is less then 64 pixels. I can easily force the window to be less then 64 pixels. So, does anyone know where this 64 pixels limit is coming from? Measure from the left edge of the window to the rightmost edge of the maximize button: 64 pixels. I doubt you can adjust it, but who knows - maybe if you get rid of the title bar? Can one override the 64 pixel limit? In Cocoa? I doubt that very much. Maybe if you drop down to Carbon, but I haven't tried that myself. Perhaps, but the goal is to avoid Carbon stuff. But, if this were possible, I would be interested. In any case, I have filed a bug report on this - rdar://7662356. Btw, the reason why this is important is that the window is a resizable NSPanel which contains several tool buttons which the user needs to be able to arrange in a single column. The width of the buttons is not large enough so a single column of them would cause the panel to be wide enough to show the zoom button, so the zoom button is hidden - which is common among such interfaces. If anyone is interested, a sample application demonstrating the problem can be found at - http://ericgorr.net/cocoadev/WindowWillResize.zip The other odd thing I noticed is that once one gets to 64 pixels, calls to windowWillResize:toSize: becomes jumpy. It only seems to be called if the cursor is moving to the left fast enough to trigger the call. Moving by single pixels to the left will not cause windowWillResize:toSize: to be called. ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: The 64 pixels width limit on Windows
On Feb 18, 2010, at 10:08 AM, Eric Gorr wrote: Measure from the left edge of the window to the rightmost edge of the maximize button: 64 pixels. I doubt you can adjust it, but who knows - maybe if you get rid of the title bar? Can one override the 64 pixel limit? In Cocoa? I doubt that very much. Maybe if you drop down to Carbon, but I haven't tried that myself. Perhaps, but the goal is to avoid Carbon stuff. But, if this were possible, I would be interested. In any case, I have filed a bug report on this - rdar://7662356. Btw, the reason why this is important is that the window is a resizable NSPanel which contains several tool buttons which the user needs to be able to arrange in a single column. I don't know your design, but if you use an HUD-style NSPanel, that limitation doesn't apply. Would that be an option? It would certainly be the easiest way out. Hank ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: The 64 pixels width limit on Windows
On Feb 18, 2010, at 10:21 AM, Hank Heijink (Mailinglists) wrote: On Feb 18, 2010, at 10:08 AM, Eric Gorr wrote: Measure from the left edge of the window to the rightmost edge of the maximize button: 64 pixels. I doubt you can adjust it, but who knows - maybe if you get rid of the title bar? Can one override the 64 pixel limit? In Cocoa? I doubt that very much. Maybe if you drop down to Carbon, but I haven't tried that myself. Perhaps, but the goal is to avoid Carbon stuff. But, if this were possible, I would be interested. In any case, I have filed a bug report on this - rdar://7662356. Btw, the reason why this is important is that the window is a resizable NSPanel which contains several tool buttons which the user needs to be able to arrange in a single column. I don't know your design, but if you use an HUD-style NSPanel, that limitation doesn't apply. Would that be an option? It would certainly be the easiest way out. Interesting. I had not considered that before. Thank you! The real question is then how to handle another feature required of the NSPanel's which is to window shade them. Currently, the minimize button has been overridden to provide this behavior. However, if it were easy to get some other kind of window shade button or indicator into the title bar (and, I'm guessing that it is), this is certainly an option. I will have to consider it some more to determine whether or not it really fits. ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: super call in the middle of a block of code ..
This seems fine to me. Generally, when subclassing, the contract is that you must call super - there is nothing said about where in your method you do so. Luke On Feb 18, 2010, at 5:58 AM, Roland King wrote: I have this piece of code in my UITableViewController subclass (that is also my tableview delegate) -(void)setEditing:(BOOL)editing animated:(BOOL)animated { if( editing ) preEditPath = [ [ [ self tableView ] indexPathForSelectedRow ] retain ]; [ super setEditing:editing animated:animated ]; if( !editing ) { [ [ self tableView ] selectRowAtIndexPath:preEditPath animated:YES scrollPosition:UITableViewScrollPositionNone ]; [ preEditPath release ]; preEditPath = nil; } } The object here is to catch the current selection on the tableview when the table goes into edit mode (because when it does, the selection is nil'ed with no delegate call) and then restore it when the table comes out of edit mode. In the meantime I'm using the delegate calls which do exist to deal with the case where the selected row is moved or deleted so I restore the right thing. The super call is in the middle of the block because I've observed that it's that super call which removes the selection whether you are entering or exiting edit mode, so if I call it right at the start of the block, the selection is nil'ed before I cache it, if I call super at the end of the block, the super call deselects the selection I just put back. But having a super call in the middle of an overriden method seems wrong to me, and a bit fragile, and it relies on the observation that that's where the selection is nil'ed. Is this unusual, totally wrong or ok? ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/luketheh%40apple.com This email sent to luket...@apple.com ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSTableViewDataSource Protocol
On 2/18/10 12:07 PM, Michael Davey said: I am writing an app that needs to be able to target 10.5 at least and hopefully 10.4, but I have just found that the way that table views are handled has changed - does anyone have a link to some documentation for the old way to do things? http://developer.apple.com/mac/library/releasenotes/Cocoa/Foundation.html Formal Protocol Adoption says: If you need to target Leopard or Tiger with the same sources, you should conditionally declare empty protocols, or else the compiler will complain about missing protocols declarations. For example: #if MAC_OS_X_VERSION_10_6 MAC_OS_X_VERSION_MAX_ALLOWED @protocol NSConnectionDelegate NSObject @end #endif -- Sean McBride, B. Eng s...@rogue-research.com Rogue Researchwww.rogue-research.com Mac Software Developer Montréal, Québec, Canada ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: “EXC_BAD_ACCESS” on Custom TableV iew with custom NSCell when clicking.
On Feb 18, 2010, at 12:24 AM, Gustavo Pizano wrote: Hello Corbin. ok, so I read your blog post, its great, I love it. I followed what you said there with my application, when the app crashes I see the address, I search for it and I see only one result, so I click the arrow next to the address to check the history and I have this situation. first I have a Malloc, responsible CoreData, responsible caller [NSSQLCore _prepareResultsFromResultSet:usingFetchPlan:withMatchingRows:], and right after that event I have the Zombie. responsible CoreData, Responsible caller [NSManageObject objectDictionaryWithValuesForKeys:] There should be a free event at some point; make sure you check the option to keep track of all retain/releases -- look for the last release. That callstack is the last person who owned the object had it, and released it. Based on that information, you need to some how ensure it is retained longer than that time period. corbin So when I click the zombie and check the extended view, the last line of code that I have control over is the accessor for the userDictionary attribute in the User ManagedObject, which has these lines of code. -(NSDictionary *)userDictionary{ return [self dictionaryWithValuesForKeys:[NSArray arrayWithObjects:@firstName,@lastName,@avatar,@title,nil]]; } I also have this line of code in the User ManageDObject +(NSSet *)keyPathsForValuesAffectingUserDictionary{ return [NSSet setWithObjects:@firstName,@lastName,@avatar,@title,nil]; } dunno if this affects in somehow.. I stilld on't get what for is it, i think its to track changes of the object for those keys. So, if I have comming back to the initial quesiton, if I have no ivars in the cusotm NSCell, Im just drawing the values in the values like this -(void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView{ NSDictionary * cellValues = [self objectValue]; NSString * firstName = [cellValues valueForKey:@firstName]; NSString * lastName = [cellValues valueForKey:@lastName]; ... } then what am I doing wrong? thx. Gustavo On Feb 17, 2010, at 11:31 PM, Corbin Dunn wrote: On Feb 17, 2010, at 2:14 PM, Gustavo Pizano wrote: On Feb 17, 2010, at 11:03 PM, Jim Correia wrote: On Feb 17, 2010, at 4:41 PM, Gustavo Pizano wrote: Maybe I misunderstood I must conform NSCopying protocol also even when using core data? If you have an NSCell subclass which adds iVars, you must implement -copyWithZone: to do correct memory management. Your -copyWithZone: needs to work correctly within the bounds of the object ownership rules. If you have an object iVar which shouldn’t be copied, but is still an owned reference, then you can (and must) retain it instead in the copy. (You should do this for all cells with iVars, not just ones with object iVars, so that your subclass will behave correctly in the future even if NSCell doesn’t implement its behavior using NSCopyObject.) - Jim Hello Jim HMM digging more into the problem.. definitely it seems because Im not copying properly the NSManagedObject Paul Robinson says in one old post: The short answer is that you need to override the setObjectValue: method (which tries to copy your uncopyable NSManagedObject) in your custom NSCell to convert your NSManagedObject into an NSValue (which is copyable). And taking what you said, so if my User ManagedObject returns me the NSDictionary with the key-value of its attributes, then in the cell I must set it as an ivar within the method setObjectValue, then implement the copyWithZone and return the copy of it isn't it? right now I don't have any ivar in my custom cell.. sooo . := :S. I think Jim and I are leading you off track; if your cell has no extra ivars, then you don't have to worry about the cell implementing copyWithZone:. I still think you should read my blog posting and see why the crash happens with zombies on. corbin ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Animating an Attached Window (was: Drawing Attention to a Control...)
On 2010 Feb 03, at 14:36, jonat...@mugginsoft.com wrote: On 3 Feb 2010, at 21:04, Jerry Krinock wrote: An app I'm developing has a multi-tabbed window. Sometimes one of the Error Recovery Options is to click into some tab and adjust control Foo. And in many cases, either due to the complexity of it, or to help the user learn where the control is, I want them to actually do it themselves, using the control. So, when a user clicks the Recovery Option Change Foo, I reveal the tab, and then I'm thinking that I'd like to maybe draw a red outline around the frame of the control. Are there any API, Apple or other frameworks that I should consider to do something like this? How about that fat blue arrow which Apple uses to direct users to menu items after searching in Help? Any way to get ahold of that? What about using a child window? I use MAAttachedWindow for this sort of thing. http://mattgemmell.com/2007/10/03/maattachedwindow-nswindow-subclass Thanks, Jonathan. Using Matt Gemmel's idea of making an attached window, I wrote a class that makes a fat arrow with a blue gradient that looks like the one you get when you click a menu item after searching in Help. Now, I'd like it to be animated, like Apple's fat blue Help arrow, moving slowly in a little circle. In Matt's code, he moves the attached window by re-creating it. I could do this brute force, offsetting the frame with x=cos(wt) and y=sin(wt). In the Core Animation Programming Guide Animatable Properties, it says that 'position' can be animated, and this has the effect of animating the frame. I've never used Core Animation. Is Core Animation the tool for this job or should I use my brute force? Thanks, Jerry Krinock ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSTableViewDataSource Protocol
Thanks for that! On 18 Feb 2010, at 16:05, Sean McBride wrote: On 2/18/10 12:07 PM, Michael Davey said: I am writing an app that needs to be able to target 10.5 at least and hopefully 10.4, but I have just found that the way that table views are handled has changed - does anyone have a link to some documentation for the old way to do things? http://developer.apple.com/mac/library/releasenotes/Cocoa/Foundation.html Formal Protocol Adoption says: If you need to target Leopard or Tiger with the same sources, you should conditionally declare empty protocols, or else the compiler will complain about missing protocols declarations. For example: #if MAC_OS_X_VERSION_10_6 MAC_OS_X_VERSION_MAX_ALLOWED @protocol NSConnectionDelegate NSObject @end #endif -- Sean McBride, B. Eng s...@rogue-research.com Rogue Researchwww.rogue-research.com Mac Software Developer Montréal, Québec, Canada ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Animating an Attached Window (was: Drawing Attention to a Control...)
Thanks, Jonathan. Using Matt Gemmel's idea of making an attached window, I wrote a class that makes a fat arrow with a blue gradient that looks like the one you get when you click a menu item after searching in Help. Now, I'd like it to be animated, like Apple's fat blue Help arrow, moving slowly in a little circle. In Matt's code, he moves the attached window by re-creating it. I could do this brute force, offsetting the frame with x=cos(wt) and y=sin(wt). In the Core Animation Programming Guide Animatable Properties, it says that 'position' can be animated, and this has the effect of animating the frame. I've never used Core Animation. Is Core Animation the tool for this job or should I use my brute force? I shake an authentication window on failure using the following CA code. NSWindowController subclass // shake it [[self window] setAnimations:[NSDictionary dictionaryWithObject:[self shakeAnimation:[[self window] frame]] forKey:@frameOrigin]]; [[[self window] animator] setFrameOrigin:[[self window] frame].origin]; /* shake animation http://www.cimgf.com/2008/02/27/core-animation-tutorial-window-shake-effect/ */ - (CAKeyframeAnimation *)shakeAnimation:(NSRect)frame { CAKeyframeAnimation *shakeAnimation = [CAKeyframeAnimation animation]; CGMutablePathRef shakePath = CGPathCreateMutable(); CGPathMoveToPoint(shakePath, NULL, NSMinX(frame), NSMinY(frame)); int idx; for (idx = 0; idx numberOfShakes; ++idx) { CGPathAddLineToPoint(shakePath, NULL, NSMinX(frame) - frame.size.width * vigourOfShake, NSMinY(frame)); CGPathAddLineToPoint(shakePath, NULL, NSMinX(frame) + frame.size.width * vigourOfShake, NSMinY(frame)); } CGPathCloseSubpath(shakePath); shakeAnimation.path = shakePath; shakeAnimation.duration = durationOfShake; return shakeAnimation; } Regards Jonathan Thanks, Jerry Krinock ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/jonathan%40mugginsoft.com This email sent to jonat...@mugginsoft.com ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Determine smallest height of vertical scrollbar
Other then creating a dummy NSScoller and incrementally decreasing it's height until usableParts returns 0, is there any easy way to determine what the minimum height of a vertical scrollbar should be so that usableParts will not return NSNoScrollerParts? What I need to be able to do is limit the height of my window based, in part, on whether or not a vertical scrollbar will have usable parts. ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: “EXC_BAD_ACCESS” on Custom TableV iew with custom NSCell when clicking.
HEllo Corbin, It seem its fixed, I didn't realize an ivar in the Custom NSCell, I forgot I put it there thinking in using it to hold the name of the user and be able to sort the table, which right now I can;t tell how to do it, I took out that ivar, and it hasn't crash so far.. still Im gonna keep trying to make it crash and if it happens, then I will do what you suggested. Thanks for the help and the blog link.. I learned a something else I wished to know but didn't know where to find it. Gustavo On Feb 18, 2010, at 5:06 PM, Corbin Dunn wrote: On Feb 18, 2010, at 12:24 AM, Gustavo Pizano wrote: Hello Corbin. ok, so I read your blog post, its great, I love it. I followed what you said there with my application, when the app crashes I see the address, I search for it and I see only one result, so I click the arrow next to the address to check the history and I have this situation. first I have a Malloc, responsible CoreData, responsible caller [NSSQLCore _prepareResultsFromResultSet:usingFetchPlan:withMatchingRows:], and right after that event I have the Zombie. responsible CoreData, Responsible caller [NSManageObject objectDictionaryWithValuesForKeys:] There should be a free event at some point; make sure you check the option to keep track of all retain/releases -- look for the last release. That callstack is the last person who owned the object had it, and released it. Based on that information, you need to some how ensure it is retained longer than that time period. corbin So when I click the zombie and check the extended view, the last line of code that I have control over is the accessor for the userDictionary attribute in the User ManagedObject, which has these lines of code. -(NSDictionary *)userDictionary{ return [self dictionaryWithValuesForKeys:[NSArray arrayWithObjects:@firstName,@lastName,@avatar,@title,nil]]; } I also have this line of code in the User ManageDObject +(NSSet *)keyPathsForValuesAffectingUserDictionary{ return [NSSet setWithObjects:@firstName,@lastName,@avatar,@title,nil]; } dunno if this affects in somehow.. I stilld on't get what for is it, i think its to track changes of the object for those keys. So, if I have comming back to the initial quesiton, if I have no ivars in the cusotm NSCell, Im just drawing the values in the values like this -(void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView{ NSDictionary * cellValues = [self objectValue]; NSString * firstName = [cellValues valueForKey:@firstName]; NSString * lastName = [cellValues valueForKey:@lastName]; ... } then what am I doing wrong? thx. Gustavo On Feb 17, 2010, at 11:31 PM, Corbin Dunn wrote: On Feb 17, 2010, at 2:14 PM, Gustavo Pizano wrote: On Feb 17, 2010, at 11:03 PM, Jim Correia wrote: On Feb 17, 2010, at 4:41 PM, Gustavo Pizano wrote: Maybe I misunderstood I must conform NSCopying protocol also even when using core data? If you have an NSCell subclass which adds iVars, you must implement -copyWithZone: to do correct memory management. Your -copyWithZone: needs to work correctly within the bounds of the object ownership rules. If you have an object iVar which shouldn’t be copied, but is still an owned reference, then you can (and must) retain it instead in the copy. (You should do this for all cells with iVars, not just ones with object iVars, so that your subclass will behave correctly in the future even if NSCell doesn’t implement its behavior using NSCopyObject.) - Jim Hello Jim HMM digging more into the problem.. definitely it seems because Im not copying properly the NSManagedObject Paul Robinson says in one old post: The short answer is that you need to override the setObjectValue: method (which tries to copy your uncopyable NSManagedObject) in your custom NSCell to convert your NSManagedObject into an NSValue (which is copyable). And taking what you said, so if my User ManagedObject returns me the NSDictionary with the key-value of its attributes, then in the cell I must set it as an ivar within the method setObjectValue, then implement the copyWithZone and return the copy of it isn't it? right now I don't have any ivar in my custom cell.. sooo . := :S. I think Jim and I are leading you off track; if your cell has no extra ivars, then you don't have to worry about the cell implementing copyWithZone:. I still think you should read my blog posting and see why the crash happens with zombies on. corbin ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This
How do I get keyboard events in an NSStatusWindowLevel window while my application is not frontmost?
After creating a translucent NSPanel and I want to get keyboard events in this window. It seems that there are only keyboard events when my application is the active application while I want keyboard events even when my application isn't active but the window is visible. Basically I want behavior like that provided by the Quicksilver application. Does anybody have any hints on how to do this? Regards Donald ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: “EXC_BAD_ACCESS” on Custom TableV iew with custom NSCell when clicking.
On Feb 18, 2010, at 9:17 AM, Gustavo Pizano wrote: HEllo Corbin, It seem its fixed, I didn't realize an ivar in the Custom NSCell, I forgot I put it there thinking in using it to hold the name of the user and be able to sort the table, which right now I can;t tell how to do it, I took out that ivar, and it hasn't crash so far.. still Im gonna keep trying to make it crash and if it happens, then I will do what you suggested. Ah! So it was the extra ivar in your custom cell. That's was my initial guess. the extra ivar is okay; you just have to retain or copy it in the cell's implementation of -copyWithZone: corbin Thanks for the help and the blog link.. I learned a something else I wished to know but didn't know where to find it. Gustavo On Feb 18, 2010, at 5:06 PM, Corbin Dunn wrote: On Feb 18, 2010, at 12:24 AM, Gustavo Pizano wrote: Hello Corbin. ok, so I read your blog post, its great, I love it. I followed what you said there with my application, when the app crashes I see the address, I search for it and I see only one result, so I click the arrow next to the address to check the history and I have this situation. first I have a Malloc, responsible CoreData, responsible caller [NSSQLCore _prepareResultsFromResultSet:usingFetchPlan:withMatchingRows:], and right after that event I have the Zombie. responsible CoreData, Responsible caller [NSManageObject objectDictionaryWithValuesForKeys:] There should be a free event at some point; make sure you check the option to keep track of all retain/releases -- look for the last release. That callstack is the last person who owned the object had it, and released it. Based on that information, you need to some how ensure it is retained longer than that time period. corbin So when I click the zombie and check the extended view, the last line of code that I have control over is the accessor for the userDictionary attribute in the User ManagedObject, which has these lines of code. -(NSDictionary *)userDictionary{ return [self dictionaryWithValuesForKeys:[NSArray arrayWithObjects:@firstName,@lastName,@avatar,@title,nil]]; } I also have this line of code in the User ManageDObject +(NSSet *)keyPathsForValuesAffectingUserDictionary{ return [NSSet setWithObjects:@firstName,@lastName,@avatar,@title,nil]; } dunno if this affects in somehow.. I stilld on't get what for is it, i think its to track changes of the object for those keys. So, if I have comming back to the initial quesiton, if I have no ivars in the cusotm NSCell, Im just drawing the values in the values like this -(void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView{ NSDictionary * cellValues = [self objectValue]; NSString * firstName = [cellValues valueForKey:@firstName]; NSString * lastName = [cellValues valueForKey:@lastName]; ... } then what am I doing wrong? thx. Gustavo On Feb 17, 2010, at 11:31 PM, Corbin Dunn wrote: On Feb 17, 2010, at 2:14 PM, Gustavo Pizano wrote: On Feb 17, 2010, at 11:03 PM, Jim Correia wrote: On Feb 17, 2010, at 4:41 PM, Gustavo Pizano wrote: Maybe I misunderstood I must conform NSCopying protocol also even when using core data? If you have an NSCell subclass which adds iVars, you must implement -copyWithZone: to do correct memory management. Your -copyWithZone: needs to work correctly within the bounds of the object ownership rules. If you have an object iVar which shouldn’t be copied, but is still an owned reference, then you can (and must) retain it instead in the copy. (You should do this for all cells with iVars, not just ones with object iVars, so that your subclass will behave correctly in the future even if NSCell doesn’t implement its behavior using NSCopyObject.) - Jim Hello Jim HMM digging more into the problem.. definitely it seems because Im not copying properly the NSManagedObject Paul Robinson says in one old post: The short answer is that you need to override the setObjectValue: method (which tries to copy your uncopyable NSManagedObject) in your custom NSCell to convert your NSManagedObject into an NSValue (which is copyable). And taking what you said, so if my User ManagedObject returns me the NSDictionary with the key-value of its attributes, then in the cell I must set it as an ivar within the method setObjectValue, then implement the copyWithZone and return the copy of it isn't it? right now I don't have any ivar in my custom cell.. sooo . := :S. I think Jim and I are leading you off track; if your cell has no extra ivars, then you don't have to worry about the cell implementing copyWithZone:. I still think you should read my blog posting and see why the crash happens with zombies on. corbin ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
Re: How do I get keyboard events in an NSStatusWindowLevel window while my application is not frontmost?
On Feb 18, 2010, at 9:22 AM, Daniel Káčer wrote: After creating a translucent NSPanel and I want to get keyboard events in this window. It seems that there are only keyboard events when my application is the active application while I want keyboard events even when my application isn't active but the window is visible. Basically I want behavior like that provided by the Quicksilver application. If you want to handle a particular keystroke (like Quicksilver's Ctrl- Space) no matter what app is active, define a system hot-key. There is sample code showing how to do this, but I don't know an exact name or URL. Once your hot key has triggered, call [NSApp activateIgnoringOtherApps: YES] and [myWindow makeKeyAndOrderFront: nil], so your window will have focus and will receive typing. —Jens___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Hillegass printing challenge
Hi all, May I ask about an issue I am having adding page numbers to a print out. I implemented the following method: - (void)drawPageBorderWithSize:(NSSize)borderSize { // NSPrintOperation *po = [NSPrintOperation currentOperation]; //NSPrintInfo *pi = [po printInfo]; NSRect currentFrame = [self frame]; NSRect newFrame= NSMakeRect(0, 0, borderSize.width, borderSize.height); [self setFrame:newFrame]; NSFont *f = [attributes objectForKey:NSFontAttributeName]; float capHeigth = [ f capHeight]; NSString *string = [ NSString stringWithFormat:@Page %d, currentPage + 1]; float stringX = (borderSize.width - (float)[string length])/2.0; [self lockFocus]; [string drawAtPoint:NSMakePoint(stringX, borderSize.height - (1.7 * capHeigth)) withAttributes:attributes]; [self unlockFocus]; [self setFrame:currentFrame]; } A while ago, there were questions to the list about printInfo margin calls. At that time, it appears the consensus was that these calls are buggy. I think they still are, as my code showed that the margins returned bore no relationship to the margins set in page Setup. As a workaround, I used the above approach. What do others do to deduce the user's margin settingsor it's possible that I am missing something else. Thanks in advance.___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: How do I get keyboard events in an NSStatusWindowLevel window while my application is not frontmost?
thank you very much ... your second hint was what I needed to know :) Donald On Feb 18, 2010, at 19:03 , Jens Alfke wrote: On Feb 18, 2010, at 9:22 AM, Daniel Káčer wrote: After creating a translucent NSPanel and I want to get keyboard events in this window. It seems that there are only keyboard events when my application is the active application while I want keyboard events even when my application isn't active but the window is visible. Basically I want behavior like that provided by the Quicksilver application. If you want to handle a particular keystroke (like Quicksilver's Ctrl- Space) no matter what app is active, define a system hot-key. There is sample code showing how to do this, but I don't know an exact name or URL. Once your hot key has triggered, call [NSApp activateIgnoringOtherApps: YES] and [myWindow makeKeyAndOrderFront: nil], so your window will have focus and will receive typing. —Jens ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
NSWindow - how to resize it keeping aspect ratio?
Hi, All, I'm sorry if this is a stupid question, but I don't see an evident answer... I need the subj, but don't see appropriate NSWindow method... Am I missing something? Any help would be appreciated. Best regards, Alexander ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSWindow - how to resize it keeping aspect ratio?
On Feb 18, 2010, at 1:55 PM, Alexander Bokovikov wrote: Hi, All, I'm sorry if this is a stupid question, but I don't see an evident answer... I need the subj, but don't see appropriate NSWindow method... Am I missing something? Implement the NSWindow delegate method - (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize. In that method, return an NSSize that has the right aspect ratio. Good luck, Hank ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSWindow - how to resize it keeping aspect ratio?
On Feb 18, 2010, at 1:55 PM, Alexander Bokovikov wrote: I'm sorry if this is a stupid question, but I don't see an evident answer... I need the subj, but don't see appropriate NSWindow method... Am I missing something? -[NSWindow setAspectRatio:] -[NSWindow setContentAspectRatio:] - Jim ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSTableView with PopUpButtonCell column with different content per row
On Thu, Feb 18, 2010 at 12:38 PM, Sean McBride s...@rogue-research.com wrote: So in the 'OS Version' column, I want the popup's contents to be either one list or another list depending on 'OS Name' of any given row. Any suggestions? Hook yourself up as the delegate of the column's popup button cell's menu, and implement -menuNeedsUpdate: to populate the menu with the correct set of items depending on the selected item. --Kyle Sluder ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSTableView with PopUpButtonCell column with different content per row
On 2010 Feb 18, at 13:30, Quincey Morris wrote: you could simply have your window controller provide an array property with version strings for the current OS (along with a KVO dependency to keep the property in sync with the current OS), and bind the popup content to that array. However, I'd suggest that perhaps you're asking the wrong question -- there might be a deeper data model design issue. Quincey's answer is excellent, and abstract. Let me give you a concrete example from one of my projects. Presumably your table is bound to an array controller whose contentSet or contentArray is bound to a collection of Foo objects in your data model. Table Column Bindings for OS Version column: Content: Bind to: FooArrayController Controller Key: arrangedObjects Model Key Path: osVersionChoices Content Values: Bind to: FooArrayController Controller Key: arrangedObjects Model Key Path: osVersionChoices.osVersionDisplayName Selected Object: Bind to: FooArrayController Controller Key: arrangedObjects Model Key Path: osVersion In your data model, @interface Foo { } @property (retain) NSString* osVersion ; // Could also be NSNumber /* Returns an array of NSStrings (or NSNumbers) */ - (NSArray*)osVersionChoices ; ... @end And finally, and I forgot who it was who gave me this invaluable tip, you implement a category on NSString (or NSNumber) which defines -osVersionDisplayName. You can do your localization or transforming in here. I've never been able to get a Value Transformer to work in an NSTableColumn binding. But the category works every time. Note that -osVersionChoices and of course -osVersionDisplay name are readonly. No problem. If you table is not editable, -osVersion can be readonly too. ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Hillegass printing challenge
On 19/02/2010, at 6:06 AM, Michael de Haan wrote: Hi all, May I ask about an issue I am having adding page numbers to a print out. I implemented the following method: - (void)drawPageBorderWithSize:(NSSize)borderSize { // NSPrintOperation *po = [NSPrintOperation currentOperation]; //NSPrintInfo *pi = [po printInfo]; NSRect currentFrame = [self frame]; NSRect newFrame= NSMakeRect(0, 0, borderSize.width, borderSize.height); [self setFrame:newFrame]; NSFont *f = [attributes objectForKey:NSFontAttributeName]; float capHeigth = [ f capHeight]; NSString *string = [ NSString stringWithFormat:@Page %d, currentPage + 1]; float stringX = (borderSize.width - (float)[string length])/2.0; [self lockFocus]; [string drawAtPoint:NSMakePoint(stringX, borderSize.height - (1.7 * capHeigth)) withAttributes:attributes]; [self unlockFocus]; [self setFrame:currentFrame]; } A while ago, there were questions to the list about printInfo margin calls. At that time, it appears the consensus was that these calls are buggy. I think they still are, as my code showed that the margins returned bore no relationship to the margins set in page Setup. As a workaround, I used the above approach. What do others do to deduce the user's margin settingsor it's possible that I am missing something else. Hi Michael, I'm not sure that they're buggy, it's just they don't return what you think they do, or what their name appears to imply. I added the following to NSPrintInfo as a category so I can get the actual paper margins set in Page Setup, it might come in handy for you too. enum { PrintInfoTopMarginIndex = 0, PrintInfoLeftMarginIndex= 1, PrintInfoBottomMarginIndex = 2, PrintInfoRightMarginIndex = 3 }; @implementation NSPrintInfo (PaperMargins) - (NSArray*)paperMargins { PMPageFormatformat = (PMPageFormat)[self PMPageFormat]; PMPaper paper; OSStatuserr = PMGetPageFormatPaper( format, paper ); if( err == noErr ) { PMPaperMargins margins; err = PMPaperGetMargins( paper, margins ); if( err == noErr ) { NSMutableArray* array = [NSMutableArray array]; [array addObject:[NSNumber numberWithDouble:margins.top]]; [array addObject:[NSNumber numberWithDouble:margins.left]]; [array addObject:[NSNumber numberWithDouble:margins.bottom]]; [array addObject:[NSNumber numberWithDouble:margins.right]]; return array; } } return nil; } - (double) topPaperMargin { return [[[self paperMargins] objectAtIndex:PrintInfoTopMarginIndex] doubleValue]; } - (double) leftPaperMargin { return [[[self paperMargins] objectAtIndex:PrintInfoLeftMarginIndex] doubleValue]; } - (double) bottomPaperMargin { return [[[self paperMargins] objectAtIndex:PrintInfoBottomMarginIndex] doubleValue]; } - (double) rightPaperMargin { return [[[self paperMargins] objectAtIndex:PrintInfoRightMarginIndex] doubleValue]; } @end --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
NSTableColumn's 'fontSize' Binding: Just Doesn't Work?
I know how to control the font size in a table -- the hard way -- by subclassing NSTableColumn and overriding -dataCellForRow. Hoping for an easy way, I noticed that NSTableView has a 'fontSize' binding... fontSize. An integer value that determines the size, in points, of the font used to display the NSTableView. If fontSize is bound, the font binding is disabled. Whoopee! So, in Interface Builder, I leave 'font' unbound, and bind thus: fontSize Bind to: Shared User Defaults Controller Controller Key: values Model Key Path: myFontSize myFontSize is a key in my user defaults. Result: It just doesn't work. Silently ignores the value in user defaults, both upon awaking and when it is changed. This was reported also by Chris Miner two years ago: http://www.cocoabuilder.com/archive/cocoa/197369-under-what-circumstances-does-the-fontsize-binding-of-nstableview-have-an-effect.html?q=NSTableView+fontSize+binding#197369 I understand that NSUserDefaults bindings do not issue an error if Model Key Path does not exist. But I checked the spelling three times. Has anyone ever seen this binding work? Jerry Krinock ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: [SOLVED] NSTableColumn's 'fontSize' Binding: Just Doesn't Work?
Sorry, I just found the answer, in the next paragraph: Binding is Read Only Off to do it the hard way ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Use of NSView enterFullScreenMode withOptions causes warning about deprecated CPSSetForegroundOperationState
Hello, In my application I have the following call: [self enterFullScreenMode:[NSScreen mainScreen] withOptions:0]; This function is documented here, and does not appear to be deprecated: http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSView_Class/Reference/NSView.html#//apple_ref/occ/instm/NSView/enterFullScreenMode:withOptions: And yet I am getting the following message right after making this call: myApp[11220]: CPSSetForegroundOperationState(): This call is deprecated and should not be called anymore. I am using the latest released version of OSX, 10.5.8. Any tips would be appreciated. Thanks, Shayne Wissler ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSTableColumn's 'fontSize' Binding: Just Doesn't Work?
On Feb 18, 2010, at 5:29 PM, Jerry Krinock wrote: I know how to control the font size in a table -- the hard way -- by subclassing NSTableColumn and overriding -dataCellForRow. Hoping for an easy way, I noticed that NSTableView has a 'fontSize' binding... Why do that, when you could just use the willDisplayCell delegate method? fontSize. An integer value that determines the size, in points, of the font used to display the NSTableView. If fontSize is bound, the font binding is disabled. Whoopee! So, in Interface Builder, I leave 'font' unbound, and bind thus: fontSize Bind to: Shared User Defaults Controller Controller Key: values Model Key Path: myFontSize myFontSize is a key in my user defaults. Result: It just doesn't work. Silently ignores the value in user defaults, both upon awaking and when it is changed. This was reported also by Chris Miner two years ago: http://www.cocoabuilder.com/archive/cocoa/197369-under-what-circumstances-does-the-fontsize-binding-of-nstableview-have-an-effect.html?q=NSTableView+fontSize+binding#197369 That poster seemed to say that the font was nil. If this is the case, font size could not produce defined results. What happens when you bind font as well? Keary Suska Esoteritech, Inc. Demystifying technology for your home or business ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
setAction:@selector is not working ?
i'm going to do a popup menu i run thru all the items and call [myMenuItem setAction:@selector(myFunction:)]; upon first run, my myFunction never gets called with the result of the menu item pick. but then, it works 100% of the time *after* i switch out then back into my app whaaa?? does anyone have an idea about this? ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: setAction:@selector is not working ?
On 19/02/2010, at 12:53 PM, David M. Cotter wrote: i'm going to do a popup menu i run thru all the items and call [myMenuItem setAction:@selector(myFunction:)]; upon first run, my myFunction never gets called with the result of the menu item pick. but then, it works 100% of the time *after* i switch out then back into my app whaaa?? does anyone have an idea about this? What's the target set to? --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSPredicate regex
hello list I'd like to check a bunch of Strings if they contain the word cache. The strings are actually paths and I check the last path component. I tried to use CoreText to detect words, but the API was a bit overwhelming. So I tried NSPredicate which worked like a charm. It detects the word as of word boundaries are not characters (numbers, space, dash and everything else). { NSString *regex = @(?:.*[\\s\\W0-9])*cache(?:[\\s\\W0-9].*)*; NSPredicate * cacheStringRegex = [NSPredicate predicateWithFormat:@SELF MATCHES %@, regex]; ... NSURL url; // assume this exists, comes from a directory enumerator if ( [cacheStringRegex evaluateWithObject:[url lastPathComponent]] ) { NSLog(@found cache directory); } } sadly, there is an error in the regex and i cannot find it. I had three strings where the CPU went to 100% and the app did not recover. here the three strings (yes, those are directory names outside of NSCachesDirectory, i was surprised too :-) com.mini.cuckooClock.Widget.7561A773F51A798326D350FE0D5617D29C3D222A.1 binarygod-BGHUDAppKit-d240cfb1a1bc155e961db145dd94e960099711b2 11) mit cachedPreferredFrameSize, ZF_SPOTLIGHT_CACHE_RESULTS, ZF_GLOBAL_SCALE = 0,707, INITIAL_BACKGROUND, CACHE_FOR_PREVIEWS Respect to everybody who is fluent in regex. Respect to everybody who knows another approach. regards thank you in advance mahal ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Quartz2D paths from vector?
If it'll work with your particular application, I'd say simplest is export PDF with a transparent background and import it into an NSImageView or whatever. -- Moses Hall blugs.com On Feb 17, 2010, at 2:05 PM, cocoa-dev-requ...@lists.apple.com wrote: However this is quite difficult to draw by numbers. I would like to draw my shapes in something like Illustrator or Photoshop and then export the Path as a vector path, .AI or .EPS, and then convert that in to a set of points for NSBezier Path to use. ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Help with creating CustomViews
Hi all, I'm a newcomer when it comes to Cocoa development. I have some good books and they discuss the possibility of CustomViews but the views they create aren't the type that I'm interested. I've scoured the web and haven't found exactly the help I need and I've tried the trial-and-error method and it hasn't worked. What I'm trying to do is the following: -I have a number of model objects, different instances of the same class. -I want to create a CustomView that would enable the display of these objects. -The CustomView is defined in its own NIB file. It consists of a bunch of NSTextField objects laid out in NSBox. -I then want to use that CustomView all over the place. :) But for starters, I'm trying to create a window with 10 instances of my CustomView. -I want to drop the CustomView in other NIB files and set up the actions/outlets/etc. The path that I took that seemed to give the best promise was: I created a CustomViewController (subclassing NSViewController) In MyDocument.init, I init the CustomViewController with my CustomView NIB file. In MyDocument.windowControllerDidLoadNib, I call viewController.view setFrame: and then windowController.window.contentView addSubView. That manages to get my CustomView to show up in the document's window. But that was done programatically and not in IB. Then I looked at the DragAround sample code on the Apple site. This seemed to be exactly give tips for exactly what I wanted, except that the DragAroundView draws itself, there is no NIB file for the view. If someone can point me to some sample code, that would be great. In the meantime, I'll keep trying. Jean Duteau ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Appropriate -setWantsLayer: timing
Hi Keith, In addition to David's reply, a small tip is that you can also get things working if you call setWantsLayer: and then follow it by assigning a layer: [self setWantsLayer:YES]; [self setLayer:[CALayer layer]]; Otherwise the layer is added at some undetermined future point which may not (in my experience ever) be in the current run loop. Simon Wolf Website: http://www.ottersoftware.com Twitter: http://www.twitter.com/sgaw On 16 Feb 2010, at 20:52, Keith Duncan wrote: I'm wondering when writing a layer hosting view, when the most appropriate time is to set the layer and call -setWantsLayer:YES? Calling it in -initWithFrame: is too early and the view fails to 'draw'. Keith ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/swolf%40fastmail.co.uk This email sent to sw...@fastmail.co.uk ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Implementing Ken-burns Effect
I am trying to implement Ken-burns effect for iPhone. Implemented Zoom-In And Zoom-Out. Got struck while implementing Panning. Any ideas to implement Panning. And need to know the flow of effects like 1 st panning then Zoom-In And Zoom-Out i.e order of effects. Thanks in advance for your help ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Appropriate -setWantsLayer: timing
On 17 Feb 2010, at 09:23, Keith Duncan wrote: On 16 Feb 2010, at 21:40, David Duncan wrote: Calling it in -initWithFrame: is too early and the view fails to 'draw'. If you are creating the view programmatically, -initWithFrame: should be fine. If your loading from a nib, then -awakeFromNib is the appropriate place. That's actually a more distilled version of my question. When your layer hosting view may be instantiated programatically, or from a NIB; there is no good place that covers both since the -init methods are too early (I haven't needed to test -initWithCoder: yet). Nor have I determined the boundary condition for which it works afterwards, I suspect it's after the has been placed in the view hierarchy. But if that's the case, does the view hierarchy need to be rooted in a window or can it be floating. One simple workaround I've been using (but wanted to check for a better solution) is to call -setWantsLayer:YES in -initWithFrame: and layer-back the view's parent in the XIB. Hi Keith, Whilst I was putting together something recently (it's on my blog is you want to see the code) but ended up with the ability to add the layers in -awakeFromNib because the view will always be defined in advance. However I essentially ended up having to call -setWantsLayer: on my view and on the parent view as two calls because the parent view didn't always seem to pass the layer-backing on down to my view. I thought that adding layer-backing in -initWithFrame: worked (you might need to add a layer at the same time) and I think you'll get away with calling it in both -initWithFrame: and in -awakeFromNib without any problems. At the very least you could check in -awakeFromNib to see if the view is already layer-backed and only call setWantsLayer: if it is not. Simon Wolf Website: http://www.ottersoftware.com Twitter: http://www.twitter.com/sgaw iChat: simon.w...@mac.com___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Real-Time Validation in a NSTextField.
I have a NSTextField which should only accept numbers in a certain range say (-72000.00 to 72000.00). I tried using NSFormatter whihc worked partially. when i hit any alphabet character on the keyboard, the value in the NSTextField stays numeric but the cursor moves forward which is not desired. Heres how i set the formatter. NSNumberFormatter* numFormatr = [[NSNumberFormatter alloc] init]; [numFormatr setFormatterBehavior:NSNumberFormatterBehaviorDefault]; [numFormatr setNumberStyle:NSNumberFormatterDecimalStyle]; [numFormatr setMinimumFractionDigits:2]; [mtextfield setFormatter:numFormatr]; Am i doing something wrong here..?? I tried an alternate approach using the delegate method controlTextDidChange: I ended up with the same problem as above. cursor position is incremented when an invalid character is typed. - (void) controlTextDidChange:(NSNotification *)obj { // get the string value from the textfield // eliminate invalid characters in the string // set the result string as stringvalue of textfield } I was wondering if there is any alternative / better approach for validating text in a textfield?? Thanks, Abhinay. ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
close: before NSWindowWillCloseNotification
Hi all, I have a typical window/controller on OS X 10.6.2. When I click the window's close box, my window controller receives the close: message before it recevies the windowWillCloseNotification. This seems to be backwards in sequence to me. Any ideas why this happens and how to avoid it? I need to recieve the notification *before* I receive close: since I want to do some stuff before the window goes away. Thanks, Chuck ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Appropriate -setWantsLayer: timing
On Feb 16, 2010, at 5:45 PM, Simon Wolf wrote: I'm wondering when writing a layer hosting view, when the most appropriate time is to set the layer and call -setWantsLayer:YES? Calling it in -initWithFrame: is too early and the view fails to 'draw'. In addition to David's reply, a small tip is that you can also get things working if you call setWantsLayer: and then follow it by assigning a layer: [self setWantsLayer:YES]; [self setLayer:[CALayer layer]]; Otherwise the layer is added at some undetermined future point which may not (in my experience ever) be in the current run loop. This is incorrect. If you want a layer-hosting view (rather than a layer-backed view) you must do this in the reverse order. setLayer: and then setWantsLayer: ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSTableViewDataSource Protocol
On Feb 18, 2010, at 7:28 AM, Graham Cox wrote: In 10.6, NSTableViewDataSource became a formal protocol, where previously it was an informal one. While the docs are strictly correct, they're a bit misleading since the methods of the protocol have been available since 10.0 This has been corrected for the last push or two. It says available since (whenever) made a formal protocol in 10.6. ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSPredicate regex
I've found Reggy (http://reggyapp.com/) to be *extremely* useful in debugging regular expressions. -BJ ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: Implementing Ken-burns Effect
On Feb 16, 2010, at 11:18 PM, Kalyanraju M wrote: I am trying to implement Ken-burns effect for iPhone. Implemented Zoom-In And Zoom-Out. Got struck while implementing Panning. Any ideas to implement Panning. Panning's just changing the x/y offset, while zooming changes the x/y scale. So figure out a position to start and end, and interpolate between them based on the time elapsed. fract = (now - startTime) / totalTime x = x0 + fract*(x1-x0) y = y0 + fract*(y1-y0) scale = scale0 + fract*(scale1-scale0) then construct a transform based on x,y and scale, and set that. —Jens___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: close: before NSWindowWillCloseNotification
On Feb 18, 2010, at 7:47 PM, Charles Burnstagger wrote: I need to recieve the notification *before* I receive close: since I want to do some stuff before the window goes away. What kind of stuff? The window still exists when you get the windowWillClose notification, so you can safely call into it or your views. If you're talking about interacting with the user (like confirming the close), you should implement the -windowShouldClose: delegate method. This gets called earlier, before the -close call, and by returning NO from it you can prevent the close entirely. —Jens___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
How to detect if mouse on border of view
Hi All, I was wondering if there is a straight forward away to know if the mouse is on the border of a view? I know how to detect if the mouse enters a view area by using NSTrackingArea - but how can I tell if the mouse is on a border? I would like to replicate iCal's behavior where a user can modify an event on the calendar by clicking on the edge of the appt. rectangle and dragging it. Thanks, Mazen ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: How to detect if mouse on border of view
On 19/02/2010, at 3:44 PM, Mazen M. Abdel-Rahman wrote: I was wondering if there is a straight forward away to know if the mouse is on the border of a view? I know how to detect if the mouse enters a view area by using NSTrackingArea - but how can I tell if the mouse is on a border? I would like to replicate iCal's behavior where a user can modify an event on the calendar by clicking on the edge of the appt. rectangle and dragging it. The border of a view doesn't really exist - it's infinitely narrow. What you really want is to detect that the mouse is inside the view but within a pixel or two of the edge. That is easy to work out by comparing the mouse point against the bounds to whatever degree of precision you want (I'd suggest not making it too precise, as it will be hard to hit - 4 pixels minimum is probably OK). --Graham ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: How to detect if mouse on border of view
On Feb 18, 2010, at 8:44 PM, Mazen M. Abdel-Rahman wrote: I was wondering if there is a straight forward away to know if the mouse is on the border of a view? I know how to detect if the mouse enters a view area by using NSTrackingArea - but how can I tell if the mouse is on a border? I would like to replicate iCal's behavior where a user can modify an event on the calendar by clicking on the edge of the appt. rectangle and dragging it. In your mouseDown: method, compare the coordinates against the edges of the view's bounds. Or is there a reason you need to know before the mouse-down occurs? —Jens___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com
Re: NSPredicate regex
On Tue, Feb 16, 2010 at 9:55 AM, martin halter ma...@me.com wrote: NSString *regex = @(?:.*[\\s\\W0-9])*cache(?:[\\s\\W0-9].*)*; Your regex is pathological. It's not hard to confuse the matcher with really convoluted regular expressions. Consider this: how is your pattern any different from... NSString *regex = @cache; Since your atoms before and after cache can match 0 or more times, you could greatly simplify the thing by just not matching at all! Never mind the .* inside the atoms. If you want to match the word cache that is surrounded by some sort of defined separators, I'd suggest: (^|[\s\W0-9])cache([\s\W0-9]|$) Broken down: - the start of the string, or some other selected separator - cache - some other selected separator, or the end of the string That should match cache in this instances: cache cache some other stuff some other stuff cache some other cache stuff cache/some other stuff some other stuff/cache some other/cache/stuff cache0some other stuff some other stuff0cache some other1cache2stuff But not: some othercachestuff Note: I'm not familiar with the particular flavor of regexes ICU uses. More used to Java and PCRE. But this is the basic idea. ___ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com