完全に標準の 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;
}
}
omboBox:indexOfItemWithStringValue は実装されていません。