- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的问题是 NSTokenField 不允许我键入任何我想要的文本,它只允许我键入包含在 tokenField:completionsForSubstring:indexOfToken:indexOfSelectedItem: 返回的 NSArray 中的字符串。
- (NSArray *)tokenField:(NSTokenField *)tokenField completionsForSubstring:(NSString *)substring indexOfToken:(NSInteger)tokenIndex indexOfSelectedItem:(NSInteger *)selectedIndex {
return [NSArray arrayWithObjects:@"AA", @"BB", @"CC", @"DD", nil];
}
我的 NSTokenField 只能包含上述文本标记。如果我输入例如 XXX,它不会出现并且无法添加。
为什么会发生这种情况,因为文档提到“用户可以输入一个字符串,该字符串不在可能完成的列表中并且也被标记化了。”
我错过了什么?
最佳答案
selectedItemIndex 的默认值为 0 — 返回列表中的第一项。
因此,如果子字符串未出现在您的列表中,则您需要将其设置为 -1(否则它将用您第一次完成的文本替换用户键入的文本)
或
只返回完成列表中实际计算用户键入的前缀的内容。 (这通常是正确的用户体验。)
- (NSArray *)tokenField:(NSTokenField *)tokenField completionsForSubstring:(NSString *)substring indexOfToken:(NSInteger)tokenIndex indexOfSelectedItem:(NSInteger *)selectedIndex
{
NSArray *completions = [NSArray arrayWithObjects:@"AA", @"BB", @"CC", @"DD", nil];
NSMutableArray *filteredCompletions = [NSMutableArray array];
[completions enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if ([[obj lowercaseString] hasPrefix:[substring lowercaseString]])
[filteredCompletions addObject:obj];
}];
return filteredCompletions;
}
关于objective-c - NSTokenField 不允许我输入除 tokenField :completionsForSubstring:. 之外的其他字符串 .. 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7697584/
我正在使用 Bootstrap 的 Tokenfield,它不断地将我的文本字段的 id 从 myid 更改为 myid-tokenfield。 此文本字段需要具有特定的 ID 才能与我正在使用的搜索
我正在尝试使用 Tokenfield 插件 - http://sliptree.github.io/bootstrap-tokenfield 如何限制仅使用源 token ? $('#tokenfie
我正在使用 Bootstraps Tokenfields,我发现由于某种原因,我打开的列表上的宽度设置为超过 1000 red blue
如何在不使自动完成建议也居中的情况下从 bootstrap tokenfield 居中表单? 一个例子是: http://jsfiddle.net/H7u63/34/ 到目前为止,我已经尝试过了 #t
当模态出现时,我想关注 token 字段输入字段。目前它只有在我点击模态中的输入字段时才会聚焦。 https://jsfiddle.net/csisanyi/h19Lzkyr/12/ 我尝试添加以下代
有谁知道现有的 Java 组件实现了 TokenField,类似于 Cocoa 的 NSTokenField? Cocoa 控件的概述位于: http://developer.apple.com/ma
我在使用 token 字段和 Bootstrap “has-error”类时遇到问题。如果输入有没有标记字段的“has-error”类,那么它周围会很好地显示一个红色边框。当我添加 token 字段时
我想使用 token 字段进行 Bootstrap :http://sliptree.github.io/bootstrap-tokenfield/但我似乎找不到任何关于如何使用 AJAX 进行操作的
我有一个带有 json 数据的自动完成功能,但我似乎无法使其与 Bootstrap tokenfield 一起使用。据我了解,这应该只是将整个事情包装在 tokenfield 函数中。或者还有其他的事
我正在使用http://sliptree.github.io/bootstrap-tokenfield/让用户选择多个关键字并通过 Django 中的 post 请求提交。下面是一段代码:
我正在尝试将带有 npm 的 tokenfield 包包含到 laravel 中。 首先,我在 package.json 依赖项中添加了以下行: "tokenfield": "^0.8.2", 这导致
我有一个类似于 this one 的问题但我同时使用 Tokenfield v0.12.1和 Twitter typeahead v0.11.1 .当我开始输入并出现建议时,它们没有样式。它显示为纯文
我正在使用 tokenfield 进行 bootstrap 和 twitter typeahead,我能够做到这一点。 http://i.stack.imgur.com/dtFbj.png 我只想显示
在使用 Bootstrap 的 Tokenfield 时,我无法通过按键盘上的“删除”捕获删除 token 事件。 我只能通过点击“.close”捕获删除事件 请参阅此jsfiddle . $(doc
我试图定义 tokenfield在高度更高但显示为文本框(单行)的文本区域上。如何自定义 token 字段以使用文本区域? $('#f1-referral-email').on('tokenfiel
我正在尝试使用 Tokenfield 在 Bootstrap 3 中实现一个简单的标签输入,但我已经在某处堆积了。 HTML代码: Κατηγορία Javascript:
我正在使用 Bootstrap Tokenfield在输入字段上。 该字段具有占位符属性“用户名”。 当我开始在字段中键入内容时(在 Chrome 31 中),占位符会按预期消失。但是,一旦 tok
我正在使用 Bootstrap Tokenfield 标签数据插入标签。它适用于插入操作。但我无法更新该标签数据。如何更新数据库中的标签。我列出了数据库中的所有标签。但是如何更新我不知道如何编辑标签值
我的问题是 NSTokenField 不允许我键入任何我想要的文本,它只允许我键入包含在 tokenField:completionsForSubstring:indexOfToken:indexOf
我已经有了 Bootstrap 3 Typeahead库集成到我的网络应用程序中。我想为文本输入字段添加一个标记系统,所以我研究了 Bootstrap Tokenfield 。我无法让两个库相互协作。
我是一名优秀的程序员,十分优秀!