inputAccessoryView 现在是只读的吗?

Posted

技术标签:

【中文标题】inputAccessoryView 现在是只读的吗?【英文标题】:inputAccessoryView is readonly now? 【发布时间】:2018-02-26 16:13:26 【问题描述】:

我有一个 Objective-C 项目,我想将 inputAccessoryView 添加到 UITextView 的子类中。旧的方式是

self.myTextView.inputAccessoryView = myView;

(myView 是 UIView)

现在 XCode (9.2) 说“赋值是只读属性”

当我尝试使用 setter 时,如下所示:

[self.myTextView setInputAccessoryView: myView];

XCode 说“'customTextView' 没有可见的@interface 声明选择器'setInputAccessoryView:'”

有人知道这是为什么吗?以及如何实际设置一个 inputAccessoryView?

非常感谢!

【问题讨论】:

据我所知,它不是只读的。.. 你确定你没有在你的 customTextView 声明/实现中做任何搞砸它的事情吗? @property(readwrite, strong) UIView *inputAccessoryView; 来自developer.apple.com/documentation/uikit/uitextview/… 上次我检查(=0.3 秒前)inputAccessoryView 仍然是读写属性。 显示customTextView的代码 谢谢你们的回答,但与此同时,我很清楚,我实际上是在尝试将 inputAccessoryView 设置在错误的对象上(它本身不是 UITextView 的子类)。该对象有一个隐藏的 textView,并且在那个对象上,它起作用了。 (这是一个巨大的项目,我最近才加入团队)。无论如何,我很感激你们花时间提供帮助! 【参考方案1】:

来自 UIKit

@property (nullable, readwrite, strong) UIView *inputAccessoryView; //its not read only, its read-write. So you can set it.

所以你可以像下面这样设置它......

UIView *customView = [UIView new];
UITextField *txt = [UITextField new];
[txt setInputAccessoryView:customView];

我在 ios 11 中使用过 XCode 9.2

【讨论】:

这不能回答问题。 OP 正在询问 为什么 它对他的情况不起作用。

以上是关于inputAccessoryView 现在是只读的吗?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 UIResponder inputAccessoryView 是原子的?

无法在 Pickerview 中设置 inputAccessoryView 工具栏

InputAccessoryView 边框?

Swift:inputAccessoryView 按钮未显示

inputAccessoryView 如何调整大小?

UIPageViewController 中的 InputAccessoryView 默认不显示