NSControl isEnabled 仅在 OS X v10.0 到 OS X v10.9 中可用

NSControl isEnabled only available in OS X v10.0 through OS X v10.9

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

在 OS X 10.10(和 iOS 8)中,Apple 框架中的许多 getter/setter 方法对被 @property 声明取代。这既使 header 界面更清晰,也使将这些 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;