gpt4 book ai didi

ios - 无法将 ViewController 类型的值分配给 UITextFieldDelegate 类型的值?

转载 作者:IT王子 更新时间:2023-10-29 04:59:21 24 4
gpt4 key购买 nike

这是我写 self.MessageTextField.delegate = self 行时的错误:

/ChatApp/ViewController.swift:27:42: Cannot assign a value of type 'ViewController' to a value of type 'UITextFieldDelegate?'

这是我的 Swift 代码 (ViewerController.swift):

//
// ViewController.swift
// ChatApp
//
// Created by David Chen on 15/4/12.
// Copyright (c) 2015年 cwsoft. All rights reserved.
//

import UIKit
import Parse

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

var messagesArray:[String] = [String]()

@IBOutlet weak var MessageTableView: UITableView!
@IBOutlet weak var ButtonSend: UIButton!
@IBOutlet weak var DockViewHeightConstraint: NSLayoutConstraint!
@IBOutlet weak var MessageTextField: UITextField!

override func viewDidLoad() {
super.viewDidLoad()
//
self.MessageTableView.delegate = self
self.MessageTableView.dataSource = self
//Set delegate
self.MessageTextField.delegate = self

self.messagesArray.append("Test 1")
self.messagesArray.append("Test 2")
self.messagesArray.append("Test 3")
}

@IBAction func ButtonSendPressed(sender: UIButton) {
self.view.layoutIfNeeded()
UIView.animateWithDuration(0.5, animations: {
self.DockViewHeightConstraint.constant = 400
self.view.layoutIfNeeded()
}, completion: nil)
}

//MARK : TextField Delegage Methods


//MARK : Table View Delegate Methods

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.MessageTableView.dequeueReusableCellWithIdentifier("MessageCell") as! UITableViewCell
cell.textLabel?.text = self.messagesArray[indexPath.row]
return cell
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return messagesArray.count
}
}

最佳答案

self.MessageTextField.delegate = self 行导致错误,因为您尝试将 self 分配为 delegate UITextField.
但是您的 ViewController 不是 UITextFieldDelegate。要让你的类(class)成为这种委托(delegate),你需要采用 UITextFieldDelegate protocol .这可以通过将其添加到您的类继承自/符合的协议(protocol)和类列表来实现。在您的情况下,这是通过更改行来完成的

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate

关于ios - 无法将 ViewController 类型的值分配给 UITextFieldDelegate 类型的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29605496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com