예 : 계속해서 터미널 창을 열고 다음을 입력하십시오.Swift 4에서 Unix 매뉴얼 페이지와 유사한 기능을 가진 명령 행 인터페이스를 작성하는 방법은 무엇입니까?
man ls
둘러보기; 화살표 키 텍스트를 통해 위 아래로 이동할 수 있으며 터미널 기록이 누락되었음을 알 수 있습니다.
"q"를 사용하여 종료하십시오.
터미널 기록이 반환됩니다. (터미널 역사 사라지는와 입력 대신 작성한 Readline 사용으로 키 입력을 할 수있는 인터페이스와 가장 중요한 출구 에 다시 출현 : 나는 위 않는 인터페이스를 작성하는 방법을 이해하려고 노력 중이 야
). 화면을 지우고 바닥에서 커서를 시작하지만 정말 줄 바꿈을 구현하고 화면 밖으로 이전 컨텐츠를 추진하고있다
: 내가 ANSI 이스케이프 코드를 관리 한 화면 청산 전면에
스크롤 가능한 히스토리를 제거하는 man 페이지와는 다릅니다. 그래서 현재 내가 성취하려고하는 것이 아닙니다.standardInput
개발자 문서가 에 나열 : 입력으로 키 입력을 복용에 관해서는
, 나는 많이 있지만 재단은 3 참조가 찾을 수 없어 FileHandle, NSUserUnixTask & 프로세스. 아마도 그들 중 한 명이 키 누름을 듣고 올바른 화면으로 인터페이스를 업데이트하고 텍스트의 위치를 변경하거나 작업을 수행하는 데 사용할 수있는 알림으로 응답 할 수 있기를 바랍니다 (종료 및 "남자"와 같은 정상적인 프롬프트는 "q"를 눌러서 수행함).
감사합니다. 감사합니다.
- 당신은'남자 ls'를 실행 한 다음 실제로 이제'PAGER' 환경의 값에 따라'more' (또는'less') 명령을 실행하고, 출력과 상호 작용할 때 변하기 쉬운. 그래서 여러분이 묻는 것은'more' 또는'less' 명령과 비슷한 것을 구현하는 것입니다. – rmaddy
@rmaddy 이것은 정확합니다. 그러나 나는 주로 위에 열거 된 두 가지 주요 기능을 어떻게 구현했는지를 주로 살펴본 것이다. – ANoobSwiftly