NSControl isEnabled 仅在 OS X v10.0 到 OS X v10.9 中可用
Posted
技术标签:
【中文标题】NSControl isEnabled 仅在 OS X v10.0 到 OS X v10.9 中可用【英文标题】:NSControl isEnabled only available in OS X v10.0 through OS X v10.9 【发布时间】:2015-02-24 21:24:32 【问题描述】:有人知道为什么 NSControl 的 isEnabled 在 setEnabled: 仍在工作时被删除了吗?
【问题讨论】:
【参考方案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 中对此进行一些解码。以上是关于NSControl isEnabled 仅在 OS X v10.0 到 OS X v10.9 中可用的主要内容,如果未能解决你的问题,请参考以下文章
NSControl 的 setCellClass 在 OS X 10.10 中已弃用,有啥替代方法可以覆盖 NSTextField 的单元格类?
子类化 NSControl,在 Swift 中不调用 IBAction