2016-03-26 12 views
0

UITextView alt sınıfını oluşturuyorum ve textViewDidChangeSelection gibi alt sınıftaki bazı temsilci yöntemlerini uyguluyor ancak UITextView delegeleri için View Controller'da da bildirim almam gerekiyor. Alt sınıftan nesne oluşturup görünüm denetleyicisinde metin görünümü temsilcisini ayarlıyorum, ancak delegeler yöntemi yalnızca alt denetleyicide değil, denetleyicide bildirilir. Her iki sınıfı da bilgilendirmem gerek. Ve ben kullanıyorum dil ben alt sınıf temsilci UITextViewDelegate miras çalıştı 2UITextViewDelegate'i alt sınıfta ve UIViewController içinde kullanma

SWIFT: VC

@objc protocol CustomTextViewDelegate:UITextViewDelegate { 

    func customTextViewDidChangeSize(chatTextView: CustomTextView) 

} 

ve sonra: Herhangi TextView'un temsilci yöntemi

let customTV = CustomTextView() 
customTV.customTextViewDelegate = self 

ama denilen almıyor.

+0

Özel metin görünümünüzü silebilir ve 'UIViewController''den ayarlayabilir ve metin görünümünüzün' textViewDidChangeSelection 'ile ilgili olduğunu söylerseniz, UIViewController'ınızı size özel temsilci aracılığıyla söylersiniz. –

+0

Metin görüntüleme temsilcisinde başka birçok yöntem var ve bunu herkes için yapmak istemiyorum. Hem alt sınıfı hem de VC'yi dinlemenin herhangi bir yolu var. –

+0

Delegatı özel metin görünümünde ve daha sonra 'ViewController' içinde şu şekilde ayarlayabilirsiniz: [texView addTarget: self action: @selector (textFieldDidChange :) forControlEvents: UIControlEventEditingChanged];' Daha fazla bilgi [here] (http: // stackoverflow .com/a/7010676/593709) –

cevap

0

İki nesne aynı anda UITextView nesnesine temsilci olamaz. Bu nedenle, CustomTextView için yeni iletişim kuralı (CustomTextViewDelegate) oluşturmalı ve içinde temsilci özelliği oluşturmalısınız. ViewController numaranızı bu CustomTextViewDelegate numaralı telefonu onaylayın ve bu yöntemleri uygulayın. CustomTextView'un UITextViewDelegate yöntemlerinin uygulanmasında, uygun CustomTextViewDelegate yöntemlerini çağırabilirsiniz.

İlgili konular