У меня есть пользовательский UItextView
подкласс, где я переопределить canBecomeFirstResponder()
:Лениво Override Properties IBOutlet Объекта
class MyTextView: UITextView {
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect) {
// Drawing code
}
*/
override func canBecomeFirstResponder() -> Bool {
return false
}
}
Я делаю это, чтобы данные обнаружены ссылки (номера телефонов URL-адреса) в UITextView
функционировать без каких-либо другого текста в представлении, который можно выбрать, но это не связано с вопросом.
canBecomeFirstResponder()
- это единственное свойство/метод, который я хочу переопределить, поэтому подклассы кажутся излишними. Я использую этот пользовательский класс с представлением, созданным с помощью Interface Builder. Можно ли лениво переопределить свойства IBOutlet свойств объекта UIKit? Что-то вроде этого:
@IBOutlet weak var contactTextView: UITextView! {
override func canBecomeFirstResponder: Bool = {
return false
}
}
Я не хочу, чтобы использовать расширение на UITextView
, потому что я только хочу, чтобы переопределить canBecomeFirstResponder()
для конкретного UITextView
, не каждый из используемых в моем проекте.
Я уже могу добиться ожидаемого поведения путем подкласса, я ищу лучший способ. Отсюда этот вопрос. – JAL
Если вы вернете false для canBecomeFirstResponder, вы даже не сможете использовать свои URL-адреса в любом случае. –
@NateLee Не правда, я тестировал это сегодня, и я могу использовать URL-адреса без выбора текста в 'UITextView', который является моим желаемым поведением. События касания на ссылках выше в цепочке «UIResponder», чем выбор текста. – JAL