在使用 NSTokenField
时发生了一些奇怪的事情,如下图所示:
当我键入 A
时,会显示弹出窗口中的选择。
我滚动它
再滚动一些,它就到了可见区域的下方。
这是所有 TableView 的行为。行后面的 View 是可见的,但它会自动弹回正常位置。但在这种情况下不是。
在 Mail 应用程序中没问题,它工作正常。
我的实现是:
创建了一个
NSTokenField
。将其委托(delegate)设置为 AppDelegate。
在实现文件中
-(NSArray *)tokenField:(NSTokenField *)tokenField completionsForSubstring:(NSString *)substring indexOfToken:(NSInteger)tokenIndex indexOfSelectedItem:(NSInteger *)selectedIndex{ return @[@"A",@"B",@"C"]; }
即使是 sample code from apple documentation行为不正确。
如何让它自动弹出或通过一些代码限制?
最佳答案
您在 Mail.app 中看到的不是实际的 NSMenu(Apple 作弊,令人震惊!)。事实证明,它实际上是一个自定义的 NSTextField 链接到卡在透明窗口中的 NSTableView。
绕过极差版本的 scrollWheel:
是一个相当古老的技巧NSMenu 恰好已经实现。 MTTokenField是拉扯你的头发试图在 NSMenu 中粘贴 ScrollView 的成熟替代方法。
关于objective-c - NSTokenField 选择列表在滚动时显示空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16715283/