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

时间:2015-02-24 21:24:32

标签: cocoa appkit nscontrol

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

1 个答案:

答案 0 :(得分:2)

在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;