Objective-C,自动擦除NSTextField字符串

时间:2015-02-15 19:28:00

标签: objective-c cocoa nstextfield

我一直试图找出如何在点击其中时自动删除NSTextField中的字符串。

例如,当前行为在OSX上是这样的:

nstextfield1 nstextfield2

当用户单击单元格或默认焦点是单元格时,单词有时会突出显示或光标位于文本的中间。然后,用户需要使用退格键来删除文本(我希望通过自动删除文本来消除该文本)。

这是一个内置的功能,我不知何故失踪了吗?如果不是我怎么办呢?

2 个答案:

答案 0 :(得分:0)

据我所知,没有标准功能可以删除文本字段中的文本。根据您的控制器类,您可以尝试使用mouseDown或acceptFirstResponder,但我不相信这会提供稳定的情况。

我建议您从空文本字段(在xcode中设置)开始,并在处理完文本字段内容后清空文本字段。例如:

-(IBAction)addYourTextFieldInWhateverYouWant:(id)sender
{
    //copying the string from the textfield
    NSString *text = [[self yourTextField]stringValue];

    //now you can empty the textfield
    [[self yourTextField]setStringValue:@""] 

    //Do here whatever you need to do with the input from the textfield.
    ....
}

它并不能完全满足您的需求,但它为用户提供了一个空文本字段,用户可以在单击文本字段时立即键入他/她的文本,用户无需删除任何文本字段文本域中的文字。

希望这有帮助。

亲切的问候, MacUserT

答案 1 :(得分:0)

有很多可怕的想法“在盒子外面”,这是其中之一。

无论如何,要创建NSTextField的子类。覆盖becomeFirstResponder。如果[super becomeFirstResponder]返回YES,请设置self.stringValue = @""