我的应用程序中有一个NSTokenField并且我实现了tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem:方法,在该方法中,我使用setTokenizingCharacterSet:方法指定接收方的标记化字符集:

  def tokenField(tokenField, completionsForSubstring:substring, indexOfToken:tokenIndex, indexOfSelectedItem:selectedIndex)
    tokenField.setTokenizingCharacterSet(NSCharacterSet.whitespaceAndNewlineCharacterSet)
  end

当我单击空格键或回车按钮时,它按预期工作。当我用鼠标单击完成列表中的某个项目时,我也希望有相同的行为。
怎么可能呢?
谢谢你的帮助。

最佳答案

我不知道这种行为是否有可能发生在一个不稳定的土地上。
但你应该看看MTTokenField哪些可以满足你的要求。
为此,您必须:
1.创建一个xcode项目作为静态库(不要启用arc)。
2.将项目保存到供应商/mttokenfield
3.将子目录“mttokenfield”中mttokenfield的所有文件拖放到新的xcode项目中。选择复制文件。
4.将此添加到rakefile中,以便编译库并将其与rubymotion项目链接。

app.vendor_project("vendor/MTTokenField/", :xcode, :xcodeproj => "MTTokenField.xcodeproj", :target => "MTTokenField", :products => ["libMTTokenField.a"], :headers_dir => "MTTokenField")

5.在接口生成器中,将nstokenfield的类更改为nstextfield,然后将其自定义类设置为mttokenfield,并更改单元格的自定义类:mttokenfield cell而不是nstextfieldcell。
6.然后您必须将mttokenfield的委托设置为一个类,该类必须响应:
def tokenField(tokenField, completionsForSubstring: substring )
   # your have to return an array containing your results matching substring.
end

就这样。它应该有用。
希望有帮助!

10-08 05:51