有人可以告诉我为什么以下方法不起作用吗?该按钮永远不会被设置为选中。
[self.boldButton setSelected:isBold];
如果我用 if else 语句替换上面的内容,它就可以正常工作。我还可以将 setSelected 值更改为 1 或 0,而不是 YES 或 NO,它仍然可以正常工作。
if (isBold)
{
[self.boldButton setSelected:YES];
}
else
{
[self.boldButton setSelected:NO];
}
所以我有一个工作项目,但我不明白为什么这两个实现不能提供相同的结果。谢谢。
FWIW - 我用另一种方法测试粗体。虽然如果测试有缺陷,我看不出第二种方法如何工作,而第一种方法仍然没有。
- (BOOL)isBold
{
CTFontRef fontRef = (CTFontRef)CFBridgingRetain(self);
CTFontSymbolicTraits symbolicTraits = CTFontGetSymbolicTraits(fontRef);
return (symbolicTraits & kCTFontTraitBold);
}