NSTableView 单击时触发另一个操作
在学习 Objective-C 时,我制作了一个基本的 Mac 购物清单应用程序,其中包含 3 个界面元素:NSTextField
、NSButton
和 NSTableView
。基本思想是您在文本字段中输入一些内容,点击添加按钮(或点击回车),然后将其添加到表视图中。一切都按预期工作,直到我单击表视图,此时它将当前文本字段中的内容添加到表视图中。
我唯一的操作是 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当用户按下 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 theNSTableView
, theNSTextField
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".