【问题标题】:Swift adding view above keyboard getting Error Cannot assign to property: 'inputAccessoryView' is a get-only propertySwift在键盘上方添加视图获取错误无法分配给属性:'inputAccessoryView'是一个只能获取的属性
【发布时间】:2019-07-30 17:18:18
【问题描述】:

我的场景,我试图在工具栏的键盘顶部添加 UIView。在这里,我使用下面的代码来增长 textview

https://github.com/muukii/NextGrowingTextView

我在 Viewcontroller 顶部添加了额外的 UIView 并将下面的代码添加到 Viewcontroller

@IBOutlet var toolBarView: UIView!
@IBOutlet weak var growingTextView: NextGrowingTextView!

在 ViewDidLoad() 中添加到下面一行

self.growingTextView.inputAccessoryView = toolBarView

出现以下错误,如何解决?

无法分配给属性:“inputAccessoryView”是一个只能获取的属性

如果我添加以下行

self.growingTextView.textView.inputAccessoryView = toolBarView

我在 iPhone X 系列中得到如下屏幕的输出(其他设备工作正常)。

current output getting gap between toolbarview and growingTextView

【问题讨论】:

  • 问题是什么?
  • 如何修复该错误? @AlexandrKolesnik
  • 创建容器放在你的工具栏和越来越多的TextView中,你不能改变只读属性

标签: ios swift


【解决方案1】:

回答您的问题:出现错误是因为类NextGrowingTextView 的类型为UIScrollView,您根本无法更改滚动视图的inputAccessoryView。你可以在 NextGrowingTextView.swift 中看到。

您应该 - 不过 - 能够修改 self.growingTextView.textView.inputAccessoryView

【讨论】:

  • 感谢您的回答对我有用,但我在越来越多的文本视图和工具栏视图之间存在差距。如何解决?
  • 你有什么想法吗?
  • 听起来布局不够……你的 toolBarView 是什么样子的,你如何布局它的子视图?还可以查看元素检查器,看看差距可能来自哪里。
  • 我检查了它的布局不足问题。有问题。 @Muli
  • 我应该如何帮助您解决这个问题?您必须提供一些信息,例如屏幕截图、框架矩形……也许 NextGrowingTextView 的作者甚至不希望您这样做。
【解决方案2】:

你必须使用

self.growingTextView.textView.inputAccessoryView = toolBarView

而不是

self.growingTextView.inputAccessoryView = toolBarView

因为growingTextViewNextGrowingTextView对象实例,它是UIScrollView 的子类,在此textView 使用NextGrowingInternalTextView

【讨论】:

    猜你喜欢
    • 2017-02-28
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多