kakao uygulamamda, NSTableView için özel bir NSCell'e ihtiyacım var. Bu NSCell alt sınıfında, bir tıklatmayla ilgilenen özel bir NSButtonCell bulunur (ve metin içeriği için iki veya üç NSTextFieldCells). Aşağıda kodumun basitleştirilmiş bir örneğini bulacaksınız.NSButtonCell, NSCell
@implementation TheCustomCell
- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
// various NSTextFieldCells
NSTextFieldCell *titleCell = [[NSTextFieldCell alloc] init];
....
// my custom NSButtonCell
MyButtonCell *warningCell = [[MyButtonCell alloc] init];
[warningCell setTarget:self];
[warningCell setAction:@selector(testButton:)];
[warningCell drawWithFrame:buttonRect inView:controlView];
}
Ben onunla şaşırıp sorundur: (: NSButtonCell daha doğrusu) bu NSCell içine düzgün çalışması için o Düğme almak için en iyi/doğru yolu nedir? "iş" şu anlama gelir: Atanan eylem mesajını tetikler ve tıklatıldığında alternatif görüntüyü gösterir. Kutunun dışında, düğme tıklandığında hiçbir şey yapmaz.
Bu konuyla ilgili bilgi/okuma bulmak zor. Net üzerinde bulunan tek mesaj
- (BOOL)trackMouse:(NSEvent *)theEvent inRect:(NSRect)cellFrame ofView:(NSView *)controlView untilMouseUp:(BOOL)untilMouseUp;
bunu yapmak için doğru yolu mu uygulamak için bana işaret ??? TrackMouse'ı uygulayın: NSCell içerimde? Ve daha sonra olayı NSButtonCell iletin? NSButtonCell'in kendisinin tıklandığında ne yapılacağını bilmesini beklerdim (ve trackMouse'u gördüm: gerçekten fare hareketlerini takip eden metotlar - 'standart' tıklama davranışı için bir eğitim çarkı olarak değil). Ama sanki bir hücreye dahil olduğu zaman bunu yapmaz gibi görünüyor ... Özel hücreler üzerinde büyük resmi kavramadım gibi görünüyor, ama yine de ;-)
(ya da bazı öğretici ya da benzerleri için bana) bu kendi deneyiminden cevap ve doğru yolda iseniz söyle. peşin
sayesinde
İçindekiler tablosunda, veri kaynağını düğmenin işaretli olduğunu bildirmesini söylüyorsunuz? – Richard
@Jeremy W. Sherman: Bu muhtemelen aptalca bir sorudur, ancak "düğme hücresinin | buttonRect |" ini nasıl alırsınız? [Button frame] gibi çeşitli şeyler denedim, ama bu işe yaramıyor ... – houbysoft