我创建了一个框架,它显示了一个小窗口,告知用户正在运行的进程的当前进度。
该窗口带有一个自己的窗口控制器。此窗口控制器包含一些已绑定到NSProgressIndicator
控件的某些属性的属性,以及绑定到按钮的Enabled
属性的布尔属性,该属性将使用户能够取消当前操作。
该按钮已与IBAction
内的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
控件(正常)和cancelAvailable
以及cancelClicked
操作已绑定到{ {1}}。我没有做任何按钮工作。有人知道为什么?
更新
按钮的NSButton
绑定有效。所以这只是行动不起作用。我只是试图将Enabled
属性绑定到窗口控制器本身。不起作用。
答案 0 :(得分:0)
问题解决了。
问题是我对本框架进行本地化的结果。
我的UI已经通过复制德语的原始XIB进行了本地化,我没有注意到我必须单独为每个本地化的用户界面添加IBAction
按钮。
因此,您必须将控件与每个本地化XIB中的相应操作连接起来。