Düğmeyi tıklattığınızda görünüm tabanlı bir tabloda bir düğme için satırı nasıl alırsınız? Düğme tıklandığında satır seçilmez, ancak düğmenin eylem yönteminde sender.superview.superview günlüğünü günlüğe kaydederseniz, şunu bulurum: NSTableRowView: 0x1001b3a90 - row: 2. Yani, satırda günlüğü var, ama programa nasıl ulaşacağımı bilmiyorum. Düğmenin eylem yöntemini NSTableCellView alt sınıfında kullanıyorum.Düğme satırını görünüm tabanlı tabloya getir
cevap
-[NSTableView rowForView:]
belgelerinde bu diyor ki:
Bu tipik bir NSButton (veya NSControl) için eylem yönteminde gerekli olan eylem üzerinde yapılmalıdır neyi satır (ve sütun) öğrenmek için.
Size basit bir örnek veriyorum. Bunun içinde içerik görünümünde bir UIButton ekliyorum. Ben butonuna tıklandığında bunun ne
-(void)goBuyTab:(UIButton *)sender{
NSLog(@"after click buy button function called goBuyTab");
NSLog(@"sender.tag in goBuyTab : %d",sender.tag);
int selectedRow=sender.tag;// This is row number
}
Umut ben
//Adding a button
UIButton *btnBuyer=[UIButton buttonWithType:UIButtonTypeCustom];
btnBuyer.frame=CGRectMake(238, 10, 26, 32);
btnBuyer.tag=indexPath.row;
[btnBuyer setImage:[UIImage imageNamed:@"buyIcon.png"] forState:UIControlStateNormal];
[btnBuyer addTarget:self action:@selector(goBuyTab:)forControlEvents:UIControlEventTouchUpInside];
[cellNew.contentView addSubview:btnBuyer];
gerekli Ve Kullanıcı bu tıkladığında aşağıdaki yönteminden kimliği var ben Satır numarası almak ve çağrı orada Yöntem arayıp ne istedin
osx size kumanda içinde düğme hücre eylem yönteminde bu kullanabilirsiniz:
- (IBAction)yourMethod:(NSButtonCell *)sender {
NSInteger selected = [yourTableView selectedRow];
NSLog(@"sender sends :%ld", selected);
}
Eğer NSTableView
Kontrölörden bir çıkış ayarlamanız gerekir.
Bu, her zaman işe yaramıyor çünkü altta yatan satırı seçmeden satırdaki bir düğmeyi tıklamanız mümkün. – Ely
Ayrıca nedeniyle (hücre bazlı bir tablo görünümünde) çalışmıyor 'sender'' NSTableView' değil, 'NSButtonCell' olup. –
bu ihtiyacım olan şey, Swift 4.
içinfunc tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
........
but.action = #selector(ViewController.buttonAction)
.........
}
@objc func buttonAction(but: NSButton){
let tablerow: NSTableRowView = but.superview?.superview as! NSTableRowView;
let index = table?.row(for: tablerow);
print("\(index));
}
- 1. Görünüm tabanlı NSTableView
- 2. Backbone.js - JSON dizisini görünüm şablonuna getir
- 3. Django - - Sınıf Tabanlı Jenerik Görünüm
- 4. Django sınıf tabanlı görünüm Liste görünümü
- 5. @csrf_exempt genel görünüm tabanlı sınıfta çalışmaz
- 6. Sınıf tabanlı görünüm "özniteliği yok .as_view()" hata
- 7. Görünüm tabanlı NSTableView/NSOutlineView ve isGroupItem
- 8. SWT StyledText: Bir sonraki satırın satırını önceki satırın sekme genişliğine getir
- 9. İki tabloyu zaman damgası tabanlı bir tabloya birleştirmek için sorgu
- 10. Doctrine Getir
- 11. ASP.NET MVC Rol tabanlı veya kimlik doğrulama tabanlı Görünüm oluşturma nasıl uygulanır?
- 12. Görünüm tabanlı “Kaynak Listesi” NSOutlineView öğelerin simgelerini ve başlıklarını görüntülemiyor
- 13. iPhone Görünüm Tabanlı Uygulamada Temel Veriler Yok mu?
- 14. Görünüm tabanlı NSOutlineView üstbilgisi hücre yazı tipi sorunları
- 15. Masaüstü veya mobil tabanlı açısal 2 farklı görünüm
- 16. Başka bir görünüm altında dinamik düğme nasıl eklenir? android olarak
- 17. Yönetici panelinde görünüm denilen ek bir düğme alabilir miyim?
- 18. Görünüm "Düğme" ile bir radyo düğmesinin boyutunu kontrol etmek için "Düğme"
- 19. Android Uygulamaya Kişileri Getir
- 20. Her zaman `git getir - -?
- 21. gnuplot'taki ön göstergeyi getir
- 22. Django Tüm Kullanıcıları Getir
- 23. Hücre tabanlı NSTableView ve görüntüleme tabanlı NSTableView arasındaki fark nedir?
- 24. farklı ekran ve farklı görünüm
- 25. Ekranda OnCreate() içindeki Nesnelerin Konumunu Getir()
- 26. İki sütundaki tabloya ait tabloya katılın
- 27. ScrollViewer SL4 için Odaklanmada ViewPort'a Denetim Getir
- 28. Düğme
- 29. Düğme
- 30. Düğme
Teşekkür Bu kodu paylaşır. Tablo görünümünü sender.superview.superview.superview öğesinden düğmenin eylem yönteminden ve sender.superview – rdelmar
görünümünden alabilirim. Eylem bir denetleyiciye gönderilmeli ve bu denetleyici tablo görünümünü bilmelidir. Bir çıkışı olmalı. Yani, süper görüntü zincirini takip etmemesi gerek. Ve, “göndereni”, “-rowForView:” argümanı olarak iletebilirsiniz, çünkü bu, doğrudan veya dolaylı olarak görünümü içeren satırı arar. –
Görünüm tabanlı bir tabloda çeşitli UI öğelerini nasıl manipüle edebileceğimi görmek için bazı testler yapıyordum, bu nedenle başlangıçta, uygulama temsilcisinde (basitlik için) eylem yöntemine sahiptim ve hiç çağrılmadı. Sonra özel tablo hücresi görünümünde koydum çünkü bir yerde olması gereken yerde okudum. Yorumunuzda söylediğin gibi, gerçekten bir kontrolör nesnesinde olması gerektiği görünüyor, ancak çalışmasını sağlamak için nereye gidebileceği konusunda bazı kısıtlamalar var mı? Uygulama delegesinde neden çalışmadı? Yanıtlayıcı zincirin görünüm tabanlı bir tablo için neye benzediğinden emin değilim. – rdelmar