如何在NSTextField中恢复旧内容?

时间:2011-12-08 14:37:55

标签: objective-c cocoa

我需要在编辑字段时恢复NSTextField的旧内容,现在它是空的。

我正在显示一个弹出窗口,说该字段不能为空。当场失去焦点时触发该方法:

- (IBAction)checkTitleField:(id)sender
{
    if ([[titleField stringValue] isEqualToString:@""]) {
        NSAlert * alert = [NSAlert alertWithMessageText:@"Title can't be empty"
                                          defaultButton:@"OK"
                                        alternateButton:nil
                                            otherButton:nil
                              informativeTextWithFormat:@"Please enter a title."];

        [alert beginSheetModalForWindow:self.window
                          modalDelegate:self
                         didEndSelector:nil
                            contextInfo:nil]; 
        return;
    }
}

但是,当弹出窗口被解除时,我无法恢复该字段的先前内容。

由于

3 个答案:

答案 0 :(得分:1)

您可以在查看加载时(以及每当创建新的有效条目时)将最新接受的值存储在NSString变量中,并且只要检测到空白条目,就可以将NSTextField文本值设置回此值。

答案 1 :(得分:0)

最好的事情是使用NSTextFormatter

答案 2 :(得分:0)

考虑将UITextField placeholder property与VeryVito的建议结合使用。只要textfield为空,它就会显示在文本字段中。另外,我发现if ([[titleField stringValue] isEqualToString:@""])在检测空文本字段时不可靠。有关解决方案,请参阅此帖子:How to test a UITextField for being nil?