我创建了一个框架,该框架显示了一个小窗口,用于通知用户当前正在运行的进程的进度。这个窗口有一个自己的窗口控制器。此窗口控制器包含一些已绑定到NSProgressIndicator控件的某些属性的属性,以及绑定到按钮的Enabled属性的布尔属性,该属性将使用户能够取消当前操作。
该按钮已连接到我的File's Owner中的一个File's Owner。我的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控件(works),cancelAvailable和cancelClicked操作被绑定到NSButton。我用这个按钮做的任何事都不管用。有谁知道原因吗?
更新:
按钮的Enabled绑定工作。因此,只是行动不起作用。我只是尝试将target属性绑定到窗口控制器本身。也不起作用。
发布于 2015-03-11 13:18:58
问题解决了。这个问题是我把这个框架本地化的结果。我的UI是通过复制德语的原始XIB来本地化的,而且我没有注意到,对于每个本地化的UI,我必须将按钮与其IBAction连接起来。
因此,您必须将控件与它们在每个本地化XIB中的相应操作连接起来。
https://stackoverflow.com/questions/28982991
复制相似问题