【问题标题】:NSControl isEnabled only available in OS X v10.0 through OS X v10.9NSControl isEnabled 仅在 OS X v10.0 到 OS X v10.9 中可用
【发布时间】:2015-02-24 21:24:32
【问题描述】:

有人知道为什么 NSControl 的 isEnabled 在 setEnabled: 仍在工作时被删除了吗?

【问题讨论】:

    标签: cocoa appkit nscontrol


    【解决方案1】:

    在 OS X 10.10(和 iOS 8)中,Apple 框架中的许多 getter/setter 方法对被 @property 声明所取代。这既使标头接口更清晰,也使这些 API 更容易导入 Swift……好吧,Swifty。

    // Before
    - (BOOL)isEnabled;
    - (void)setEnabled:(BOOL)enabled;
    
    // After
    @property(getter=isEnabled) BOOL enabled
    

    文档尚未完全更新以反映这一点,因此它错误地将 isEnabled 显示为已弃用,即使 @property 声明意味着您仍然可以执行以下任何操作:

    BOOL foo = [control isEnabled];
    [control setEnabled:YES];
    BOOL bar = control.enabled;
    control.enabled = YES;
    

    【讨论】:

    • 谢谢!这也适用于continuous 方法/属性。然而,NSControl 文档中删除的许多其他声明 实际上已被弃用:我尝试在 this answer 中对此进行一些解码。
    猜你喜欢
    • 1970-01-01
    • 2015-02-04
    • 2013-12-08
    • 1970-01-01
    • 2015-08-25
    • 2017-04-13
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    相关资源
    最近更新 更多