如果按下Return键,完成列表就会消失,但是我希望通过点击建议来解除它.我怎样才能做到这一点?
解决方法 我找到了解决这个问题的方法,但这还不完美,但我希望我能尽快解决上一期的问题.我正在使用rubymotion,即使我可以在Ruby中翻译Objective-C,我也无法做到相反,所以我的答案将在Ruby中.随意编辑我的答案,添加相应的Objective-C代码.
在我的NSTokenFIEld的委托中,我使用了NSControl的controlTextDidChange方法,只要我在令牌字段中写入一个字符,就会调用它.在这个方法中,我检查是否有一个触发的NSleftMouseUp事件,如果是这种情况,我模拟一个点击返回(从其他SO question学习).就是这样.
这是我的Ruby代码:
def controlTextDIDChange(aNotification) application = NSApplication.sharedApplication event = application.currentEvent if event.type == NSleftMouseUp e1 = CGEventCreateKeyboardEvent(nil,0x24,true) CGEventPost(KCGSessionEventTap,e1) endend
但就像我告诉你的那样,它还不完美:我的问题是,如果我有一个包含3个项目的完成列表,默认情况下会选择其中一个,让我们说第一个.在这种情况下,如果我单击第二个或第三个项目,我的解决方案将按预期工作,但我必须双击第一个项目才能使其工作.
但是,这仍然是一个良好的开端,我希望它会有所帮助!
编辑
为了解决我的最后一个问题,我关闭了自动完成功能,只显示了建议框.为此,我将此行添加到tokenFIEld:completionsForSubstring:indexOfToken:indexOfSelectedItem:method:
selectedindex[0] = -1总结
以上是内存溢出为你收集整理的objective-c – 单击项目时关闭NSTokenField完成列表?全部内容,希望文章能够帮你解决objective-c – 单击项目时关闭NSTokenField完成列表?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)