ObjC - 更改NSTextField stringValue会导致exc_bad_access

时间:2014-05-30 22:27:20

标签: objective-c xcode cocoa

什么有用

我有一个NSTextField和一个按钮的视图:

当我点击按钮时,会创建一个“卡片”,其标题等于文本框中的字符串。如果未输入任何文本,则卡片的标题将恢复为某个默认值。

问题

这很好用,但我希望每次单击按钮时都会重置文本框的字符串。我添加[inputField setStringValue:@""];尝试执行此操作,但在尝试访问EXC_BAD_ACCESS时,Xcode在尝试访问aCard的{​​{1}}成员时遇到myTitle问题}的Card方法。

为什么重置drawRect的{​​{1}}会导致此错误?

代码和屏幕截图

按下按钮方法:

inputField

这是卡片的stringValue方法:

if (![inputField.stringValue  isEqual: @""])
{
    [aCard setStringTitle:inputField.stringValue];
    [inputField setStringValue:@""]; // this line causes a problem!
}

和卡的setStringTitle方法:

-(void)setStringTitle:(NSString *)aString
{
    myTitle = aString;
    [[self viewWithTag:0] setStringValue:myTitle];
} 

enter image description here enter image description here

0 个答案:

没有答案