Birisi, yalnızca klavye kullanan bir kullanıcının ScrollView içindeki farklı UI Öğeleri arasında gezinmeyi denediğinde otomatik olarak nasıl kaydırma yapabilirim? 'Tab tuşu? "TAB" tuşuna bastığımda, odak scrollView'de bulunan farklı UI öğesine kaydırılır, ancak UI Öğesi Görünür İçerik Görünümünde mevcut değilse kaydırma yapmaz. Bu nasıl başarılabilir? Yardım takdir edilecektir. Teşekkürler.Erişilebilirlik: Kaydırma sırasında görünmeyen görünüme otomatik olarak kaydırmak için Kaydırma Görünümü "TAB"
6
A
cevap
3
Çözüm A: NSWindow
'un bir alt sınıfını oluşturun ve makeFirstResponder:
'u geçersiz kılın. İlk cevaplayıcı değiştiğinde makeFirstResponder
çağrılır.
- (BOOL)makeFirstResponder:(NSResponder *)responder {
BOOL madeFirstResponder = [super makeFirstResponder:responder];
if (madeFirstResponder) {
id view = [self firstResponder];
// check if the new first responder is a field editor
if (view && [view isKindOfClass:[NSTextView class]] && [view isFieldEditor])
view = [view delegate]; // the control, usually a NSTextField
if (view && [view isKindOfClass:[NSControl class]] && [view enclosingScrollView]) {
NSRect rect = [view bounds];
rect = NSInsetRect(rect, -10.0, -10.0); // add a margin
[view scrollRectToVisible:rect];
}
}
return madeFirstResponder;
}
Çözelti B: NSTextField
ve diğer kontrollerin bir alt sınıfı oluşturun ve becomeFirstResponder
geçersiz kılar.
- (BOOL)becomeFirstResponder {
BOOL becameFirstResponder = [super becomeFirstResponder];
if (becameFirstResponder) {
if ([self enclosingScrollView]) {
NSRect rect = [self bounds];
rect = NSInsetRect(rect, -10.0, -10.0); // add a margin
[self scrollRectToVisible:rect];
}
}
return becameFirstResponder;
}
+0
Teşekkür ederiz @Willek. Buna benzer bir şey denedim ama işe yaramadı, NSWindow'da yapmak cazibe gibi çalışıyor. –
İlgili konular
- 1. iPad kaydırma - kaydırma sırasında hangi olaylar tetiklenir?
- 2. Metin eklendiğinde otomatik kaydırma otomatik olarak kaydırılıyor
- 3. ViewPager Otomatik Kısmi Kaydırma
- 4. HorizontalScrollView, animasyonla bitmek üzere otomatik olarak kaydırma
- 5. Kaydırma sırasında GridView içeriği kaybolacak
- 6. ListView'de kaydırma yapılmadığında otomatik ilerletme kaydırma çubukları
- 7. Dokunma Kaydırma Görünümü IOS
- 8. UITableView'im kaydırma işlemini canlandırmak için söylemediğim sürece neden kaydırma yapmıyor?
- 9. Appceleraotor'da kaydırma görünümü için daha fazlasını göster
- 10. Ekranda görünümde kaydırma görünümü var
- 11. pürüzsüz kaydırma/atalet kaydırma/momentum kaydırma
- 12. yatay kaydırma görünümü hızlı xcode
- 13. Chrome otomatik olarak dikey kaydırma çubuğunu gizliyor
- 14. WPF ListView Databound Sürükle/Bırak Otomatik Kaydırma
- 15. liste görünümü kaydırma UI aksaklık
- 16. Hızlandırılmış Kaydırma Geri Dönüşüm Görünümü
- 17. Liste görünümü kaydırma hatası 5.1
- 18. Android Recycler görünümü Kaydırma çubuğu
- 19. ViewMode Viewer, Kaydırmak İçin Ayarlandığında FlowDocumentReader'ın Kaydırma Artışını Ayarlama?
- 20. Android ListViewİz uzun listeyi hızlıca kaydırmak için alfa kaydırma aracı
- 21. WPF List Yüksekliği otomatik olarak ayarlanmışsa kaydırma çubuğu yok
- 22. Program aracılığıyla gezinmek için uitextview kaydırma yapmak
- 23. Android liste görünümünde bir kaydırma görünümünde otomatik kaydırma sorunu
- 24. Dairesel UIScrollView - SwiftCarousel: Otomatik kaydırma yapmak istiyorum
- 25. Div içeriğini dikey olarak sürekli olarak otomatik olarak kaydırma
- 26. html5 tuvalinde kaydırma/kaydırma arka planı
- 27. Android kaydırma görünümü, APP çubuğunun üstüne gider
- 28. Otomatik kaydırma listesi nasıl oluşturulur
- 29. UITableView'da kaydırma yok
- 30. WPF Datagrid'de kaydırma çubuğu/kaydırma nasıl etkinleştirilir
Kodda ilerlemek istiyor musunuz? Bir şey denedin mi? – Willeke
Evet. Görünümün odakta görünmesi ve scrollView'ın görünür alanında bulunmaması durumunda kaydırma işleminin otomatik olarak gerçekleşmesini istiyorum. Ben başarısızlıkla autoscroll: 'denedim. Yapmam gereken şey hakkında hiçbir fikrim yok. Umarım benim şartım vardır. Lütfen yorum yapın. –
Deneyi deneyin [view scrollRectToVisible: view.bounds] '. – Willeke