NSTableView 单击时触发另一个操作

发布于 2024-11-16 11:44:00 字数 459 浏览 2 评论 0原文

在学习 Objective-C 时,我制作了一个基本的 Mac 购物清单应用程序,其中包含 3 个界面元素:NSTextFieldNSButtonNSTableView。基本思想是您在文本字段中输入一些内容,点击添加按钮(或点击回车),然后将其添加到表视图中。一切都按预期工作,直到我单击表视图,此时它将当前文本字段中的内容添加到表视图中。

我唯一的操作是 addItem ,它将文本字段的 stringValue 添加到 NSTableView 的数据源,一个 NSMutableArray 。我将其设置为仅由按钮和文本字段触发,而不是由 NSTableView 触发。当我从 NSTextField 中删除操作时,问题就停止了。有什么建议吗?

While learning objective-c, I've made a basic mac shopping list app with 3 interface elements: NSTextField, NSButton and NSTableView. The basic idea is you type something into the text field, hit the add button (or hit return) and it adds it to the table view. Everything works as expected until I click on the table view at which point it adds what ever is currently to the text field to the table view.

The only action I have is addItem which adds the text field's stringValue to NSTableView's data source, an NSMutableArray. I've set it to be only triggered by the button and the textfield, not the NSTableView. When I remove the action from NSTextField the problem stops. Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事与诗 2024-11-23 11:44:00

当用户按下 Enter失去焦点时,NSTextField 都会触发其操作。当您单击 NSTableView 时,NSTextField 失去焦点,因此它调用其操作。

如果您只希望它在 Enter 上发送其操作,则 NSTextField 的属性选项卡中有一个标记为“操作”的弹出按钮,您可以将其设置为“已发送”仅输入”。

The NSTextField fires its action both when the user hits the Enter key and when it loses focus. When you click on the NSTableView, the NSTextField loses focus, so it calls its action.

If you only want it to send its action on Enter, there is a pop up button in the NSTextField's attributes tab labeled "Action" that you can set to "Sent on Enter Only".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文