Objective-C,改变 NSButton 功能?
Posted
技术标签:
【中文标题】Objective-C,改变 NSButton 功能?【英文标题】:Objective-C, changing NSButton functionality? 【发布时间】:2012-09-09 21:08:43 【问题描述】:如何更改以前使用的按钮的功能?例如,如果我有一个执行“继续/取消”的按钮,假设您“继续”,那么该按钮会更改为“查看/返回”之类的内容吗?基本上我想将相同的按钮重新用于其他事情,但因为我不知道有人可以如何帮助我更好地理解它。谢谢。
- (IBAction)someButton:(NSButton *)sender
if ([someString isEqualToString:someThing])
isAllowed = YES;
[oneButton setTitle:@"Proceed"];
[self continue];
else
[oneButton setTitle:@"Cancel"];
return;
- (void)continue
// I would like to make someButton (above) take on different functionality
// here if that's even possible. such as:
[oneButton setTitle:@"View"];
[self whatNow];
【问题讨论】:
【参考方案1】:在您的程序生命周期的某个时刻,您可以将 NSButton
的先前目标和/或操作替换为所需的目标和/或操作。
[oneButton setAction:@selector(continue)];
这将导致调用您的 continue
选择器,而不是 oneButton
实例的 someButton:
。
OBS:请注意您的选择器,因为 NIB 文件中的选择器有一个参数 @selector(someButton:)
,而您正在创建的选择器没有任何参数,所以它保持为 @selector(continue)
如此处所示:Cocoa forControlEvents:WHATGOESHERE
【讨论】:
谢谢 - 我会试试看。我还有一个问题;是否可以让一个按钮同时针对两种方法? @JoeHabadas 是的,当然!同一个 UIControlEvent 可以有多个目标/动作对,请记住,它们将按照添加的顺序被触发 另外,可以一次删除所有目标/操作:***.com/questions/3340825/… - 我将为此添加一个编辑:) 非常感谢费利佩。我正在尝试将其与 Cocoa 一起使用;你知道Mac相当于UIControlEventAllEvents等吗? @JoeHabadas 嗯抱歉,我完全忽略了问题中的nsbutton
并选择了 uibutton 方法以上是关于Objective-C,改变 NSButton 功能?的主要内容,如果未能解决你的问题,请参考以下文章