【发布时间】:2015-03-11 09:39:59
【问题描述】:
我创建了一个框架,它显示一个小窗口来通知用户正在运行的进程的当前进度。
这个窗口带有一个自己的窗口控制器。此窗口控制器包含一些属性,这些属性已绑定到 NSProgressIndicator 控件的某些属性,以及绑定到按钮的 Enabled 属性的布尔属性,这将使用户能够取消当前操作。
该按钮已与我的File's Owner 中的IBAction 连接。我的File's Owner 的类型已设置为我的自定义窗口控制器。 NSProgressIndicator 的绑定工作正常(当值更新时,条正在填充)但 NSButton 的绑定没有。
Enabled 属性没有改变(尽管绑定的属性已经改变),按钮也没有触发它的IBAction 方法。
这里有一些代码:
窗口控制器标题:
@property SEL cancelActionSelector;
@property id cancelDelgate;
@property double currentValue;
@property double maxValue;
@property BOOL cancelAvailable;
- (IBAction)cancelClicked:(id)sender;
窗口控制器实现:
- (IBAction)cancelClicked:(id)sender
{
if (self.cancelDelgate && self.cancelActionSelector && [self.cancelDelgate respondsToSelector:self.cancelActionSelector])
{
NSLog(@"User requested update cancellation.");
[self.cancelDelgate performSelector:self.cancelActionSelector];
}
else
{
NSLog(@"User requested update cancellation. Could not perform due to missing target (delegate: %@, selector: %p", self.cancelDelgate, self.cancelActionSelector);
}
}
currentValue 和 maxValue 已绑定到 NSProgressIndicator 控件(有效)和 cancelAvailable 以及 cancelClicked 操作已绑定到 NSButton。我没有用按钮做任何事情。有人知道为什么吗?
更新:
按钮的Enabled 绑定有效。所以这只是不起作用的动作。我只是尝试将target 属性绑定到窗口控制器本身。也不行。
【问题讨论】:
标签: objective-c cocoa