NSTextField的“已发送操作”选项有什么用?

时间:2014-01-22 14:31:20

标签: click interface-builder nstextfield

Interface Builder中,当您按住NSTextField时,可以使用选项Sent Actions。我认为点击我的NSTextField(这是不可编辑的)时会触发一个动作,但它不起作用。

enter image description here

有关此选项目标的任何线索吗?

2 个答案:

答案 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

      
        
    1. 将动作代码写为IB知道的任何类的方法(例如:... AppDelegate或您自己制作的任何类   已知的IB)
    2.   
    3. 单击应用程序窗口中要设置其操作的GUI项目
    4.   
    5. 打开Connections Inspector

           

      在“已发送操作”列表下,您将看到该项目的“选择器”。单击右侧的空白圆圈并将其拖动到   MainMenu.xib窗口到action方法所在的类   实施;把它放在那里。

           

      发布后,会显示可用作操作的所有已实现方法的列表。用鼠标选择一个,然后单击它。

           

      此过程对应于我们在没有IB的情况下编写应用程序时使用的目标 - 动作模式。必须编写动作方法   使用一个类型为id的参数。

    6.   

答案 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;
}