首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSTextField setEnabled

NSTextField setEnabled
EN

Stack Overflow用户
提问于 2010-02-16 09:53:46
回答 2查看 2K关注 0票数 0

我的窗口中有一个NSTextField对象,在单击复选框时必须禁用该对象。

我编写了一个IBAction来接收复选框单击,并禁用/启用了基于复选框状态的文本。

代码语言:javascript
复制
[mName setEnabled: [mNameCheck state]];

这与基本功能很好,但我发现了一些奇怪的行为。

您可以更新文本文件中的一些细节,然后单击复选框,将文本字段禁用旧内容。

示例:

  • 第1阶段:文本文件具有“名称”
  • 第2阶段:将文本文件内容更新为"Girish"
  • Stage 3:单击复选框(以禁用文本文档)
  • 第4阶段:将内容禁用为“名称”

<代码>F 210

如果在禁用文本字段之前,我辞职并将响应程序设置为其他控制器,则此问题将得到解决。

在我的情况下,我不能将响应程序分配到复选框(它不需要)或任何其他控制器,所以我做了一些类似于下面这样的操作,它工作得很好。

代码语言:javascript
复制
[mName resignFirstResponder];
[mName becomeFirstResponder];

辞职并指派同一个控制器的负责人员。

我只是想知道这个解决办法是正确的,还是更好的解决这个问题的办法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-16 13:20:59

由于docs状态,不直接调用-resignFirstResponder-becomeFirstResponder。代之以呼叫-[NSWindow makeFirstResponder:]。传入为零是可以接受的,状态将传递给窗口本身。

您可以尝试调用-[NSWindow selectNextKeyView:],尽管我不完全确定如果它找不到有效的下一个键视图会发生什么。试试看。如果这样做不起作用,您将不得不回过头来打电话给-nextValidKeyView-makeFirstResponder

票数 3
EN

Stack Overflow用户

发布于 2010-02-16 21:42:35

如果在Interface中将文本字段设置为连续,则字段的值将在字段发生更改时立即设置,而不是在失去焦点时设置。您可以使用[yourTextField setContinuous:YES]以编程方式设置此值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2271908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档