在Interface Builder
中,当您按住NSTextField
时,可以使用选项Sent Actions
。我认为点击我的NSTextField
(这是不可编辑的)时会触发一个动作,但它不起作用。
有关此选项目标的任何线索吗?
答案 0 :(得分:2)
下面的说明介绍了如何将操作连接到将出现在“已发送操作”字段中的对象。在你的情况下,NSTextField
。例如,以下是有关如何向NSTextField
添加特定操作的问题:Send action from NSTextField when on key up instead of return。
由于您使用的是不可编辑的NSTextField
,因此所有这些可能都不相关。不过,如果您确实想要添加点击操作,可以在此处提供解决方案:Which delegate method should I use to respond to clicks on an NSTextField?。
How to connect a button to a method on Mac OS X
右键单击Mac nib中的按钮时,执行ClickClick: 收到的行动;这不是一个事件。 “已发送操作”下的唯一条目 是“选择器”,这是唯一可以连接到操作的东西 另一个对象。
因为只有一个“发送事件”,你通常只是 控制 - 从控件拖动/右键拖动到目标并选择 动作而非控制点击,选择事件并拖动 从那起。
Create the connection from the button to the action
现在,在您之前添加的按钮上右键单击(或按住Ctrl键单击) 展示其检查员小组。在该面板中,您将看到标题为的部分 “已发送操作”,显示单个项目;该项目的标题 “选择器”,因为它尚未连接到动作方法。 要进行连接,请从该项目的目标(圆圈处)拖动 右边)到文档窗口中的控制器对象。
Adding an action to a GUI item - 幻灯片12/13
- 将动作代码写为IB知道的任何类的方法(例如:... AppDelegate或您自己制作的任何类 已知的IB)
- 单击应用程序窗口中要设置其操作的GUI项目
- 醇>
打开Connections Inspector
在“已发送操作”列表下,您将看到该项目的“选择器”。单击右侧的空白圆圈并将其拖动到 MainMenu.xib窗口到action方法所在的类 实施;把它放在那里。
发布后,会显示可用作操作的所有已实现方法的列表。用鼠标选择一个,然后单击它。
此过程对应于我们在没有IB的情况下编写应用程序时使用的目标 - 动作模式。必须编写动作方法 使用一个类型为id的参数。
答案 1 :(得分:0)
- (void)viewDidLoad
{
_txt_city.delegate = self;
_txt_city.tag = 1000;
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; // return NO to disallow editing.
{
if(textField.tag == 1000)
{
// Create event;
return YES;
}
else
{
}
return YES;
}