我的窗口中有一个NSTextField对象,在单击复选框时必须禁用该对象。
我编写了一个IBAction来接收复选框单击,并禁用/启用了基于复选框状态的文本。
[mName setEnabled: [mNameCheck state]];这与基本功能很好,但我发现了一些奇怪的行为。
您可以更新文本文件中的一些细节,然后单击复选框,将文本字段禁用旧内容。
示例:
<代码>F 210
如果在禁用文本字段之前,我辞职并将响应程序设置为其他控制器,则此问题将得到解决。
在我的情况下,我不能将响应程序分配到复选框(它不需要)或任何其他控制器,所以我做了一些类似于下面这样的操作,它工作得很好。
[mName resignFirstResponder];
[mName becomeFirstResponder];辞职并指派同一个控制器的负责人员。
我只是想知道这个解决办法是正确的,还是更好的解决这个问题的办法?
发布于 2010-02-16 13:20:59
由于docs状态,不直接调用-resignFirstResponder或-becomeFirstResponder。代之以呼叫-[NSWindow makeFirstResponder:]。传入为零是可以接受的,状态将传递给窗口本身。
您可以尝试调用-[NSWindow selectNextKeyView:],尽管我不完全确定如果它找不到有效的下一个键视图会发生什么。试试看。如果这样做不起作用,您将不得不回过头来打电话给-nextValidKeyView和-makeFirstResponder。
发布于 2010-02-16 21:42:35
如果在Interface中将文本字段设置为连续,则字段的值将在字段发生更改时立即设置,而不是在失去焦点时设置。您可以使用[yourTextField setContinuous:YES]以编程方式设置此值。
https://stackoverflow.com/questions/2271908
复制相似问题