-
Another Lion change wreaking havoc
One common practice when subclassing a class is to use an application specific prefix so that if Apple adds a similar class in the future, it doesn't conflict. For ReceiptWallet, I always used RW. One of the classes I subclassed was NSTextView so that I could draw text in gray when no text is entered. This is similar to NSTextFieldCell's setPlaceHolderString method. I named my member variable placeHolderString and added a property. The code worked fine on Snow Leopard, but when it was run on Lion, we had reports that the placeholder text was drawn twice and blurry.
It appears that Apple added this property to NSTextView in Lion, but didn't document it. I tried lots of different tactics to fix it, but decided the easiest thing to do was to rename my member variable/property. That worked perfectly and remains backwardly compatible.
So despite my best effort to keep my changes in my own namespace, there was no way for me to anticipate or detect this kind of change.
Lesson learned.
-
Bit by API Changes
Mac OS X Lion has changed some of the internal workings of various APIs and as I don't work much on Mac apps, I didn't care too much. However, one app I work on got bit by this pretty hard. In various places in the NSDocument based app, I called:
[self saveDocument:self];
This, I had assumed, was a synchronous call and then proceeded to make calls after that based on the fact that the call succeeded. Up until OS X Lion, things seemed to work fine. However, with Lion, this call seemed to cause problems and after reading the header file for NSDocument, I instantly realized the issue:
/* The action of the File menu's Save item in a document-based application. The default implementation of this method merely invokes [self saveDocumentWithDelegate:nil didSaveSelector:NULL contextInfo:NULL]. */ - (IBAction)saveDocument:(id)sender;
So I was tricked into thinking there was a synchronous call and got bit by it. So I've fixed the code to use a callback and things seem to be working better. While I should have been using the asynchronous call all along, I don't recall if it existed in OS X 10.4 when I first wrote the program.
-
Goodbye old friend (Quicken)
Back in April when there was a lot of talk about Mac OS X Lion coming out and it not supporting Rosetta. As I relied on Quicken for my accounting and have been using it for almost 20 years, I decided to start looking for a replacement sooner rather than being forced to make a decision when Lion came out. Intuit was pretty quiet about what was happening with Quicken and considering the last real Quicken version was Quicken 2007 (Quicken Essentials could only give me a snapshot of my investments and not track them), I didn't have high hopes for an Intel native version of Quicken coming out for Lion.
So I looked at all the options and settled on iBank 4. The interface was pretty and pretty much imported my 20 years of Quicken data. I've been told that there are former Quicken people working on iBank, so that gave me a little more reassurance that they know what they're doing. There are a number of things to get used to in iBank, but that's expected as I can't unlearn something after 20 years!
Now that I'm fully in Lion mode, I had to bid a fond careful to my old friend, Quicken. Quicken helped me budget my way through college, track all my expenses, keep my accounts balanced and reconciled, and gave me a good picture of where I stand financially. However, it is time to move on and for all the other ex-Quicken or soon to be ex-Quicken users, make the leap now to something else as it will make going to Lion much easier.
-
Looking for beta testers - iPad movie app
Have you tried to edit video in iMovie on the iPad and found your video doesn't appear?
Do you want to take just your iPad on vacation, shoot videos with your compact digital camera and edit a video before you return home without a desktop computer?
If you answered yes to either question, then do I have an app for you.
If you have an iPad 2, iMovie for iOS, a compact digital camera such as the Sony DSC-WX9 and some time to test an app, let me know. I'll need your devices UDID and I can sign you up!