我已经做了很多研究并且没有想法来解决这个问题.有人能告诉我为什么canPerformAction,caretRectForPosition,selectionRectsForRange不要求将myTextField对象.
我已经读过,只有在类继承UITextField而不是从类继承的情况下才会调用这些函数UITextFieldDelegate.
我还尝试在函数定义前放置override.但Swift 3并不喜欢这样:
方法不会覆盖其超类ViewController.swift中的任何方法
这应该不是问题,因为可以像这里所述删除覆盖: Swift协议:方法不会覆盖其超类中的任何方法
import Foundation
import UIKit
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate
//, UITextFieldDelegate
{
@IBOutlet var my_text_field: MyTextField!
@IBOutlet var my_text_field_delegate: MyTextFieldDelegate!
var pickerView = UIPickerView()
var pickOption = ["test1",
"test2",
"test3",
"test3",
"test4",
"test5"]
override func viewDidLoad()
{
super.viewDidLoad()
//let pickerView = UIPickerView()
pickerView.delegate = self
pickerView.showsSelectionIndicator = true
my_text_field.inputView = pickerView
my_text_field_delegate.inputView = pickerView
//my_text_field_delegate.delegate = self
}
func …Run Code Online (Sandbox Code Playgroud)