2010-05-31 74 views
0

我想做一个简单的任务:如何从点击按钮的文本字段中删除光标?

我有一个可编辑的文本字段,两个按钮(标题:使编辑/使不可编辑)在一个窗口。想法是:当用户点击“编辑可编辑”按钮时,文本字段应该可编辑,当他/她点击“编辑不可编辑”时,它应该变成不可编辑的。

在行动“使不可编辑”我这样做:

[myTextField setSelectable:NO]; 
[myTextField setEditable:NO]; 

,并在行动“为可编辑”我这样做:

[myTextField setSelectable:YES]; 
[myTextField setEditable:YES]; 

问题是:

当myTextField没有光标或者它有光标,但用户没有输入任何内容并点击 - “make un-editable”,那么myTextField变得不可编辑,但是当它有光标和用户时在输入内容后点击“make un-editable”,他/她仍然可以编辑myTextField。

对于其溶液我试图从myTextField将除去光标一旦用户点击“使不可编辑”按钮,通过添加之前可选择的和可编辑的语句这些行:

  1. [someOtherTextField selectText:self];

  2. [[NSRunLoop currentRunLoop] performSelector:@selector(selectText:) someOtherTextField argument:self order:9999 modes:[NSArray arrayWithObject:NSDefaultRunLoopMode]];

  3. [someOtherTextField becomeFirstResponder];

但是没有一个适合我:(

任何人都可以提出一些解决方案吗?

+0

someOtherTextField是隐藏在这种情况下! – Devarshi 2010-05-31 07:04:54

回答

4

becomeFirstResponder文档说

使用NSWindow makeFirstResponder:方法,没有这种方法,使对象的第一个响应者。永远不要直接调用这个方法。

我不知道,如果一个隐藏的文本字段可以成为第一个响应者,所以尝试:

[[myTextField window] makeFirstResponder: nil]

+0

Thanx ..它的工作:) – Devarshi 2010-05-31 07:30:18

+1

那么,为什么你没有接受我的答案? – JWWalker 2010-05-31 17:15:33

+0

我现在已经完成了......欢呼声 – Devarshi 2010-06-09 08:55:57