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 工具栏