Simple Swift 3 Solution: добавьте эту функцию в свои контроллеры представлений, которые имеют текстовое поле:
@IBAction func textField(_ sender: AnyObject) {
self.view.endEditing(true);
}
Затем откройте ваш помощник и убедитесь, что ваша Main.storyboard находится на одной стороне вашего вид и требуемый файл диспетчера view.swift находится на другом. Нажмите на текстовое поле, а затем выберите в правой панели утилиты «Показать инспектор подключений». Управляйте перетаскиванием из «Сделанный конец при выходе» в указанную выше функцию в вашем быстром файле. Повторите для любого другого текстового поля в этой сцене и ссылайтесь на ту же функцию.
Чтобы записать файл, вам нужно открыть файл, в обратном вызове вы получите дескриптор файла, который будет использоваться для записи в файл. Пожалуйста, смотрите пример:
fs.open(datapath + '/data/topplayers.json', 'wx', function(error, fileDescriptor){
if(!error && fileDescriptor){
var stringData = JSON.stringify(data);
fs.writeFile(fileDescriptor, stringData, function(error){
if(!error){
fs.close(fileDescriptor, function(error){
if(!error){
callback(false);
}else{
callback('Error in close file');
}
});
}else{
callback('Error in writing file.');
}
});
}
}
Хорошо, если вы хотите обновить файл, проверьте этот код:
const myUpdaterFcn = (dir,file,data,callback)=>{
//dir looks like this: '/your/existing/path/file.json'
// Open the file for writing (using the keyword r+)
fs.open(dir, 'r+', (err, fileDescriptor)=>{
if(!err && fileDescriptor){
// Convert data to string
const stringData = JSON.stringify(data)
// Truncate the file
fs.truncate(fileDescriptor,err=>{
if(!err){
// Write to file and close it
fs.writeFile(fileDescriptor, stringData,err=>{
if(!err){
fs.close(fileDescriptor,err=>{
if(!err){
callback(false)
} else {
callback('Error closing existing file')
}
})
} else {
callback('Error writing to existing file')
}
})
} else {
callback('Error truncating file')
}
})
} else {
callback('Could not open file for updating, it may not exist yet')
}
})
}
Удачи.