我有一个NSView,打开时,它上面的第三个NSTextField变成了FirstResponder来设置光标。如果我打开此表单并开始键入然后单击一个保存按钮,则代码中的NSTextField.stringValue为空,即使它包含视图中的字符。如果我在单击保存按钮之前单击该字段,则字段stringValue在代码中可用。
我相信这在过去有用,任何想法是怎么回事? 我尝试在保存时取消firstResponder,并在点击等时将保存按钮设为第一个响应者。
我目前唯一的解决方案是不要让它成为First Responder并强制用户点击字段,写点东西然后点击有效的保存按钮。
XCode 9.1(9B55)
非常感谢您的帮助。
答案 0 :(得分:0)
当Willeke在评论中询问我如何设置和删除第一响应者时,我注意到我有错误,将其设置为:
- (void)reachabilityDidChange:(NSNotification *)notification{
Reachability *reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
if (remoteHostStatus == NotReachable) {
// not reachable
} else if (remoteHostStatus == ReachableViaWiFi) {
// reachable via Wifi
} else if (remoteHostStatus == ReachableViaWWAN) {
// reachable via WWAN
}
}
文档声明不应该使用它,正确的方法是:
[self.textfield becomeFirstResponder]
谢谢Willeke!