NSComboBox コンポーネントで奇妙な問題が発生しました。「selectIndexAtPath」の動作は、データ ソースによって異なります。
- 「固定」リストでは、アイテムが正しく選択され、右側の矢印ボタンをクリックしてリストを開くと、選択されたままになります。
- データ ソースを使用すると、アイテムが正しく選択されますが、右側の矢印ボタンをクリックしてリストを開くと、アイテムは 1/10 秒間選択されたままですが、選択が解除されます。
説明するコード:
@interface AppDelegate()
@property (weak) IBOutlet NSComboBox *combobox;
@property (strong, nonatomic) NSArray *temp;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
self.temp = @[@"Item", @"Item2", @"Item3", @"Item4", @"Item5"];
/* THIS DOES WORK */
self.combobox.usesDataSource = NO;
[self.combobox addItemsWithObjectValues:self.temp];
/* HOWEVER, THIS DOES NOT WORK */
self.combobox.usesDataSource = YES;
self.combobox.dataSource = self;
[self.combobox selectItemAtIndex:2];
}
#pragma mark - NSComboBoxDataSource methods
- (NSInteger)numberOfItemsInComboBox:(NSComboBox *)aComboBox
{
return self.temp.count;
}
- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(NSInteger)index
{
return self.temp[index];
}
誰がこれを引き起こすのか知っていますか? 数日間試しています...ありがとう!