Backward compatibility of Xcode OSX

前端 未结 2 747
旧巷少年郎
旧巷少年郎 2020-12-19 19:48

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

相关标签:
2条回答
  • 2020-12-19 19:55

    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
    
    0 讨论(0)
  • 2020-12-19 19:55

    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
    
    0 讨论(0)
提交回复
热议问题