Xcode OSX的向后兼容性

时间:2015-05-11 18:24:06

标签: xcode osx-yosemite osx-mountain-lion nsview nsviewcontroller

如何在OSX 10.8的Xcode 4.6.1中使用viewDidLoadappDidBecomeActive等功能,这些功能仅适用于OSX 10.10及更高版本。请建议使用这些功能的替代方法。

2 个答案:

答案 0 :(得分:3)

扩展肯托马斯的评论;这是我使用的代码:

- (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

答案 1 :(得分:0)

我覆盖了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