Автоматический отступ в блокноте ++

Подробности

Xcode 9.3, Swift 4.1

Протестировано на iOS: 9, 10, 11

Решение

import UIKit

extension UIApplication {

    var screenShot: UIImage?  {
        return keyWindow?.layer.screenShot
    }
}

extension CALayer {

    var screenShot: UIImage?  {
        let scale = UIScreen.main.scale
        UIGraphicsBeginImageContextWithOptions(frame.size, false, scale)
        if let context = UIGraphicsGetCurrentContext() {
            render(in: context)
            let screenshot = UIGraphicsGetImageFromCurrentImageContext()
            UIGraphicsEndImageContext()
            return screenshot
        }
        return nil
    }
}

Использование

 imageView.image = UIApplication.shared.screenShot

Подробности

Xcode 8.2.1, swift 3

Версия 1 для iOS 10x

import UIKit

extension UIApplication {

    var screenShot: UIImage?  {

        if let layer = keyWindow?.layer {
            let scale = UIScreen.main.scale

            UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale);
            if let context = UIGraphicsGetCurrentContext() {
                layer.render(in: context)
                let screenshot = UIGraphicsGetImageFromCurrentImageContext()
                UIGraphicsEndImageContext()
                return screenshot
            }
        }
        return nil
    }
}

Версия 2 для iOS 9x, 10x

Если вы попытаетесь использовать код версии 1 в iOS 9x, у вас будет ошибка: CGImageCreateWithImageProvider: поставщик недопустимого изображения: NULL.

import UIKit

extension UIApplication {

    var screenShot: UIImage?  {

        if let rootViewController = keyWindow?.rootViewController {
            let scale = UIScreen.main.scale
            let bounds = rootViewController.view.bounds
            UIGraphicsBeginImageContextWithOptions(bounds.size, false, scale);
            if let _ = UIGraphicsGetCurrentContext() {
                rootViewController.view.drawHierarchy(in: bounds, afterScreenUpdates: true)
                let screenshot = UIGraphicsGetImageFromCurrentImageContext()
                UIGraphicsEndImageContext()
                return screenshot
            }
        }
        return nil
    }
}

Использование

let screenShot = UIApplication.shared.screenShot!
182
задан 17 revs, 7 users 45% 23 May 2017 в 02:34
поделиться

4 ответа

Блокнот ++ только автовставит последующие отступы при ручном расположении с отступом первой строки в блоке; иначе можно повторно расположить код с отступом после факта с помощью TextFX > TextFX Edit > Reindent C++ code.

133
ответ дан scronide 23 November 2019 в 06:05
поделиться

В последней версии (по крайней мере), можно найти его через:

  • Настройки (меню)
  • Предпочтения...
  • (вкладка)
  • MISC нижний левый список флажка
  • " Автоматический отступ " является 2-й опцией в этой группе

[ РЕДАКТИРОВАНИЕ ], Хотя, я не думаю, что это имело лучшую реализацию Автоматического отступа. Так, проверьте, чтобы удостовериться, что у Вас есть версия 5.1 - автоматический отступ недавно получил перестройку, таким образом, это автоматически корректирует Ваше расположение с отступом.

<час>

Действительно также отмечают, что Вы пропускаете блок для 2-го if:

void main(){
  if(){
    if() { }  # here
  }
}
22
ответ дан Jonathan Lonowski 23 November 2019 в 06:05
поделиться

Большинство разработчиков программ редактирования текста неправильно использует это имя (автоматический отступ). Корректное имя, "поддерживают добавление отступа". Автоматический отступ - то, что Вы на самом деле хотите, но он не реализован.

я также хотел бы видеть эту функцию в Блокноте ++.

29
ответ дан 2 revs, 2 users 67% 23 November 2019 в 06:05
поделиться

Кажется, есть опция для автоматического форматирования XML, по крайней мере. Ее можно найти по адресу TextFX -> TextFX HTML Tidy -> Tidy: reindent XML.

31
ответ дан 23 November 2019 в 06:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: