昨日の続き。
Hotkeyの同値チェックは id ではなく、キーコードで行うべきだな。昨日の isEqual: は次のようになる。
- (BOOL)isEqual:(id)anObject
{
if (anObject == self) {
return YES;
}
if (!anObject || ![anObject isKindOfClass:[self class]]) {
return NO;
}
if (self.code == [anObject code] && self.modifier == [anObject modifier] ) {
return YES;
}
return NO;
}
キーコードと装飾キー(modifier)の組み合わせで判断する。
NSArray, NSSet の containsObject: を呼ぶと、コレクション内のオブジェクトに対して isEqual: を投げて同値チェックを行う。containsObject: は後ほど HotkeyRegister で使う。