假设我希望在它触发的某个方法中接近某个 UIControl——我可以使用“sender”向该方法发送一个指向 UIControl 的指针。但是,由于某种原因,我不能直接访问发件人的属性,而必须使用 setX:forState: 方法。如果我直接接近属性,我不会收到错误或警告;它根本什么都不做......
这是一个例子:
h. file...
@interface MYViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIButton *dButton; //connected to a UIButton in IB
-(IBAction)dButtonClick:(UIButton*)sender; //connected to the same UIButton in IB
@end
然后...
m. file...
- (void)viewDidLoad
{
[super viewDidLoad];
self.dButton.titleLabel.textColor = [UIColor greenColor]; //this is working...
}
-(IBAction)dButtonClick:(UIButton*)sender
{
sender.titleLabel.textColor = [UIColor redColor]; //this is not working...
self.dButton.titleLabel.textColor = [UIColor redColor]; //this is also not working...
[sender setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; //only this is working.
//But why?!?!?
}
我试图搜索有关这些项目工作方式的一些信息,但找不到任何足够清楚地解释其背后逻辑的信息。
任何帮助都会......嗯......有帮助......