Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSButton以编程方式切换按钮更改_Objective C_Cocoa_Nsbutton - Fatal编程技术网

Objective c NSButton以编程方式切换按钮更改

Objective c NSButton以编程方式切换按钮更改,objective-c,cocoa,nsbutton,Objective C,Cocoa,Nsbutton,我在应用程序中将NSButton设置为切换(开/关)。当我点击按钮时,它工作正常,但是当我尝试用[toggleButton setEnabled:YES]编程设置它时它没有效果 代码: *toggleActiveNSUserDefaults中存储的是或否get(工作正常);我想记住用户重新打开应用程序时最后一个按钮的状态 setEnabled:仅将按钮的可用性更改为用户交互 下面将切换按钮的图像,同时将按钮的状态设置为on/off [toggleButton setState:NSOnState

我在应用程序中将NSButton设置为切换(开/关)。当我点击按钮时,它工作正常,但是当我尝试用
[toggleButton setEnabled:YES]编程设置它时它没有效果

代码:


*
toggleActive
NSUserDefaults中存储的是或否get(工作正常);我想记住用户重新打开应用程序时最后一个按钮的状态

setEnabled:仅将按钮的可用性更改为用户交互

下面将切换按钮的图像,同时将按钮的状态设置为on/off

[toggleButton setState:NSOnState];  
[toggleButton setState:NSOffState];
如果您希望在状态更改的同时执行适当的操作,那么还必须调用适当的函数

[toggleButton setState:NSOnState];
[self startFunction:toggleButton];
或者,你也可以打电话

[toggleButton performClick:self];
但是,这将导致按钮在切换状态时出现短暂的浅蓝色阴影(就像您实际单击它一样)。因此,我更喜欢前者


所有这些都是在我不久前做的一些快速观察的基础上完成的,当时我正试图做同样的事情(谷歌搜索把我带到了这条线上)。希望这有帮助:)

我想这就像iOS一样,你想要的是启动/关闭。因此,如果您
setEnabled
,您将只设置用户是否可以与按钮交互。而
setState
将允许您执行您想要的操作:打开/关闭
setState:NSOnState]同样,结果仍然相同。对于那些迁移到Swift的人,
toggleButton.state=myBoolValue?nsState:NSOffState
[toggleButton performClick:self];