运行NSAlert后是否修改了第一响应者?

时间:2015-03-08 11:37:00

标签: objective-c cocoa

有时当我运行我的应用程序时,我意识到菜单不起作用,好像它没有连接。

经过调查,似乎在应用程序的某个时刻出现错误,用户被要求提供NSAlert中的某些文本。

NSAlert *alert = [[NSAlert alloc] init];
[alert setMessageText:@"enter your name"];
[alert addButtonWithTitle:@"OK"];
NSTextField *input = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 200, 24)];
[input setStringValue:@""];
[alert setAccessoryView:input];
NSInteger button = [alert runModal];
... // do something with [input stringValue];

这有什么问题?我正在使用ARC。我应该" dealloc"不知何故使用后NSAlert

由于

1 个答案:

答案 0 :(得分:0)

我最终在模态之后手动设置了第一个响应者。

[xxx.window makeFirstResponder:yyy.myView];

事情真的很奇怪,我无法将第一个响应者设置为通话前的状态,即使它等于myView ......