我希望能够通过ID(或标识符)访问UI控件(即:NSTextField
)。
我可以:sender.identifier
获取我想要的ID,但我似乎无法获取/设置值。
例如:如果我有一个名为 Button_01 的按钮,当用户点击此按钮时,我想要更新名为 Name_01的字段 即可。有什么建议吗?
答案 0 :(得分:1)
Mac OS中的每个NSControl都有一个标签属性(以前是-tag和-setTag:)
@property NSInteger tag; // Obj-C
var tag: Int // Swift
这允许您使用数字值来控制任何控件。因此,如果您想要按标签区分一堆按钮,则可以编写一些代码,如:
button1.tag = 1; // Obj-C/Swift code (can omit the ; in Swift)
button2.tag = 2;
然后您可以简单地比较发件人的标签。如果您在Mac OS中使用xib或故事板,则还可以在Interface Builder中设置这些值。
NSControl是NSView的子类,然后有方法func viewWithTag(_ aTag: Int) -> AnyObject?
,可以按以下方式使用:
let buttonWithTag = containerView.viewWithTag(tag)
其中containerView
是包含所有按钮的视图,tag
是您之前为每个按钮指定的标记。
答案 1 :(得分:0)
首先:您应该为对象创建和出口,例如" Name_01" (这是TextField的错误名称)
然后您可以使用以下命令轻松更新它:
txtFieldName.text = ""
OR:如果要使用标识符,可以为每个视图元素设置标记ID,并使用以下内容获取此元素:
viewWithTag(ID)