我有一个完全标准的 NSComboBox。它设置了一个数据源来为其提供内容,效果很好。问题是当用户单击查看列表时,它开始一直滚动到列表底部而不是顶部。我发现
- (void)scrollItemAtIndexToTop:(NSInteger)index
并尝试过
[comboBox scrollItemAtIndexToTop:0];
在各个地方,但它什么也没做。这比其他任何事情都更烦人,我无法弄清楚。
提前致谢。
编辑:来自数据源的代码:
- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox
{
return [[engineTypesArrayController arrangedObjects] count];
}
- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index
{
return [[[engineTypesArrayController arrangedObjects] objectAtIndex:index] valueForKey:@"title"];
}
- (NSString *)comboBoxCell:(NSComboBoxCell *)aComboBoxCell completedString:(NSString *)uncompletedString
{
NSArray *matchingObjects = [[engineTypesArrayController arrangedObjects] filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(logTenCustomizationProperty_title BEGINSWITH[c] %@)", uncompletedString]];
if (matchingObjects && ([matchingObjects count] > 0))
{
return [[matchingObjects objectAtIndex:0] valueForKey:@"title"];
}
else
{
return nil;
}
}
comboBox:indexOfItemWithStringValue 未实现。