问题
How to use features such as viewDidLoad
or appDidBecomeActive
in Xcode 4.6.1 for OSX 10.8, which are available only for OSX 10.10 and above. Please suggest the alternative ways to use these functions.
回答1:
To expand on Ken Thomas's comment; this is the code that I use:
- (void)loadView
{
[super loadView];
// if we're running on 10.8 or older…
if (NSAppKitVersionNumber <= NSAppKitVersionNumber10_8) {
[self viewDidLoad]; // call viewDidLoad (added in 10.9)
}
}
//
// This will be called by loadView pre-10.9; directly otherwise
//
- (void)viewDidLoad {
// --- YOUR CODE HERE ---
} // viewDidLoad
回答2:
I'd override setView
@interface MyViewController : NSViewController
@end
@implementation MyViewController
- (void)setView:(NSView*)v {
super.view = v;
// if we're running on 10.8 or older…
if (NSAppKitVersionNumber <= NSAppKitVersionNumber10_8) {
[self viewDidLoad]; // call viewDidLoad (added in 10.9)
}
}
@end
来源:https://stackoverflow.com/questions/30174952/backward-compatibility-of-xcode-osx