내용에 따라 NSTextView의 크기를 자동으로 조정하는 방법은 무엇입니까?

램 파트라

사용자가 창의 아무 곳이나 클릭 할 수 NSTextView있고 마우스 위치에 프로그래밍 방식으로 추가 되는 앱을 만들고 있습니다. 아래 코드로 작업했지만 NSTextView화면 가장자리에 도달 할 때까지 가로로 확장 된 다음 세로로 커지기를 원합니다 . 현재 너비가 고정되어 있으며 더 많은 문자를 추가하면 텍스트보기가 예상대로 세로로 커지지 만 가로로도 커지기를 원합니다. 이것을 어떻게 달성 할 수 있습니까?

나는 설정 isHorizontallyResizable하고 isVerticallyResizable사실로 시도 했지만 이것은 작동하지 않습니다. 잠시 동안 조사한 후 https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/TextStorageLayer/Tasks/TrackingSize.html을 발견 했지만 저에게도 효과가 없었습니다.

보기 ViewController에 추가하려면 내 코드 NSTextView:

private func addText(at point: NSPoint) {     
    let textView = MyTextView(frame: NSRect(origin: point, size: CGSize(width: 150.0, height: 40.0)))
    view.addSubview(textView)       
}

그리고 MyTextView클래스는 다음과 같습니다.

class MyTextView: NSTextView {

    override func viewWillDraw() {
        
        isHorizontallyResizable = true
        isVerticallyResizable = true
        
        isRichText = false
    }
}

나는 또한이 답변 https://stackoverflow.com/a/54228147/1385441을 보았지만 그것을 구현하는 방법을 완전히 모르겠습니다. 이 코드 스 니펫을 추가하고 다음 MyTextView과 같이 사용했습니다.

override func didChangeText() {
    frame.size = contentSize
}

그러나 나는 그것을 잘못 사용하고 있다고 생각합니다. Ergo, 어떤 도움을 주시면 감사하겠습니다.

빨간 머리

추가하려는 때문에, 조금 의아해 해요 NSTextViewA와 NSView의 일부인 NSViewController다음 화면 폭에 대해 얘기하고. 이 부분이 Presentify-화면 주석 응용 프로그램의 일부입니까? 그렇다면 전체 화면 오버레이 창이 있고 여기 (또는 뷰 컨트롤러의보기)에서 크기를 가져올 수 있습니다.

view.bounds.size                // view controller's view size
view.window?.frame.size         // window size

그렇지 않고 화면 크기를 알아야하는 경우 NSWindow& NSScreen.

view.window?.screen?.frame.size // screen size

NSTextView 성장

지정된 창 /보기 컨트롤러의보기 크기 조정 동작이 없습니다.

import Cocoa

class BorderedTextView: NSTextView {
    override func draw(_ dirtyRect: NSRect) {
        super.draw(dirtyRect)
        
        let path = NSBezierPath(rect: bounds)
        NSColor.red.setStroke()
        path.stroke()
    }
}

class ViewController: NSViewController {
    override func mouseUp(with event: NSEvent) {
        // Convert point to the view coordinates
        let point = view.convert(event.locationInWindow, from: nil)
        
        // Initial size
        let size = CGSize(width: 100, height: 25)
        
        // Maximum text view width
        let maxWidth = view.bounds.size.width - point.x             // <----
                
        let textView = BorderedTextView(frame: NSRect(origin: point, size: size))
        textView.insertionPointColor = .orange
        textView.drawsBackground = false
        textView.textColor = .white
        textView.isRichText = false
        textView.allowsUndo = false
        textView.font = NSFont.systemFont(ofSize: 20.0)
        textView.isVerticallyResizable = true
        textView.isHorizontallyResizable = true
                
        textView.textContainer?.widthTracksTextView = false
        textView.textContainer?.heightTracksTextView = false
        textView.textContainer?.size.width = maxWidth               // <----
        textView.maxSize = NSSize(width: maxWidth, height: 10000)   // <----
        
        view.addSubview(textView)
        
        view.window?.makeFirstResponder(textView)
    }
}

여기에 이미지 설명 입력

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

QScrollArea 내의 자식 콘텐츠에 따라 QVBoxLayout의 크기를 자동으로 조정하는 방법은 무엇입니까?

분류에서Dev

배경 이미지 크기에 따라 div의 크기를 자동으로 조정하는 방법은 무엇입니까?

분류에서Dev

ImageIcon을 JButton으로 설정하고 버튼의 크기에 따라 그림의 크기를 조정하는 방법은 무엇입니까?

분류에서Dev

브라우저 크기에 따라 DIV 요소의 크기를 조정하는 방법은 무엇입니까?

분류에서Dev

VLC가 본 콘텐츠 해상도에 따라 창 크기를 자동으로 조정하는 것을 방지하는 방법은 무엇입니까?

분류에서Dev

:: after 가상 요소에서 원의 크기를 자동으로 조정하는 방법은 무엇입니까?

분류에서Dev

VB.NET의 사용자 항목에 따라 소수점 자리를 자동으로 설정하는 방법은 무엇입니까?

분류에서Dev

ShapeDrawables로 사용자 정의보기를 자동으로 조정하는 방법은 무엇입니까?

분류에서Dev

내용에 따라 Microsoft Word Online의 표 행 크기를 자동으로 조정 하시겠습니까?

분류에서Dev

값에 따라 페이지의 CSS를 동적으로 변경하는 방법은 무엇입니까?

분류에서Dev

tSQL을 사용하여 조건에 따라 EventStop timeStamp를 정의하는 방법은 무엇입니까?

분류에서Dev

Plotly : 시리즈의 차이에 따라 마커를 사용자 지정하는 방법은 무엇입니까?

분류에서Dev

프로그래밍 방식으로 전화 크기에 따라보기를 조정하는 방법은 무엇입니까?

분류에서Dev

양식 크기의 변경에 따라 구성 요소의 크기를 조정하는 방법은 무엇입니까?

분류에서Dev

사용자가 <div> 요소의 세로 크기를 수동으로 조정하도록 허용하는 방법은 무엇입니까?

분류에서Dev

참조 수정 자에 따라 딥 또는 얕은 복사를 수행하는 방법은 무엇입니까?

분류에서Dev

크기에 따라 JButton의 글꼴 크기를 변경하는 방법은 무엇입니까?

분류에서Dev

다른 항목의 크기에 따라 imageView 크기를 변경하는 방법은 무엇입니까?

분류에서Dev

화면 크기에 따라 그리드 이미지의 크기를 조정하는 방법은 무엇입니까?

분류에서Dev

SWT를 사용하여 RCP 응용 프로그램에서 외부 부품 영역에 따라 테이블 크기를 자동으로 조정하는 방법은 무엇입니까?

분류에서Dev

SQL Server의 조건에 따라 열을 기반으로 모든 달을 동적으로 할당하는 방법은 무엇입니까?

분류에서Dev

jbpm의 조건에 따라 프로세스를 다시 시작하는 방법은 무엇입니까?

분류에서Dev

FXML을 AnchorPane에로드 할 때 자동으로 크기를 조정하는 방법은 무엇입니까?

분류에서Dev

Odoo / OpenERP 주문 라인 필드를 고객의 필드에 따라 읽기 전용으로 설정하는 방법은 무엇입니까?

분류에서Dev

특정 조건에 따라 CRM 엔터티의 "상태 이유"필드를 자동 업데이트하는 방법은 무엇입니까?

분류에서Dev

CSS 만 사용하여 텍스트 영역의 크기를 자동으로 조정하는 방법은 무엇입니까?

분류에서Dev

r의 조건에 따라 선택한 행으로 새 df를 만드는 방법은 무엇입니까?

분류에서Dev

레일의 로케일에 따라 글꼴을 동적으로 설정하는 방법은 무엇입니까?

분류에서Dev

하드 드라이브에 마운트 된 파티션으로 새 파티션의 크기를 조정 / 생성하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    QScrollArea 내의 자식 콘텐츠에 따라 QVBoxLayout의 크기를 자동으로 조정하는 방법은 무엇입니까?

  2. 2

    배경 이미지 크기에 따라 div의 크기를 자동으로 조정하는 방법은 무엇입니까?

  3. 3

    ImageIcon을 JButton으로 설정하고 버튼의 크기에 따라 그림의 크기를 조정하는 방법은 무엇입니까?

  4. 4

    브라우저 크기에 따라 DIV 요소의 크기를 조정하는 방법은 무엇입니까?

  5. 5

    VLC가 본 콘텐츠 해상도에 따라 창 크기를 자동으로 조정하는 것을 방지하는 방법은 무엇입니까?

  6. 6

    :: after 가상 요소에서 원의 크기를 자동으로 조정하는 방법은 무엇입니까?

  7. 7

    VB.NET의 사용자 항목에 따라 소수점 자리를 자동으로 설정하는 방법은 무엇입니까?

  8. 8

    ShapeDrawables로 사용자 정의보기를 자동으로 조정하는 방법은 무엇입니까?

  9. 9

    내용에 따라 Microsoft Word Online의 표 행 크기를 자동으로 조정 하시겠습니까?

  10. 10

    값에 따라 페이지의 CSS를 동적으로 변경하는 방법은 무엇입니까?

  11. 11

    tSQL을 사용하여 조건에 따라 EventStop timeStamp를 정의하는 방법은 무엇입니까?

  12. 12

    Plotly : 시리즈의 차이에 따라 마커를 사용자 지정하는 방법은 무엇입니까?

  13. 13

    프로그래밍 방식으로 전화 크기에 따라보기를 조정하는 방법은 무엇입니까?

  14. 14

    양식 크기의 변경에 따라 구성 요소의 크기를 조정하는 방법은 무엇입니까?

  15. 15

    사용자가 <div> 요소의 세로 크기를 수동으로 조정하도록 허용하는 방법은 무엇입니까?

  16. 16

    참조 수정 자에 따라 딥 또는 얕은 복사를 수행하는 방법은 무엇입니까?

  17. 17

    크기에 따라 JButton의 글꼴 크기를 변경하는 방법은 무엇입니까?

  18. 18

    다른 항목의 크기에 따라 imageView 크기를 변경하는 방법은 무엇입니까?

  19. 19

    화면 크기에 따라 그리드 이미지의 크기를 조정하는 방법은 무엇입니까?

  20. 20

    SWT를 사용하여 RCP 응용 프로그램에서 외부 부품 영역에 따라 테이블 크기를 자동으로 조정하는 방법은 무엇입니까?

  21. 21

    SQL Server의 조건에 따라 열을 기반으로 모든 달을 동적으로 할당하는 방법은 무엇입니까?

  22. 22

    jbpm의 조건에 따라 프로세스를 다시 시작하는 방법은 무엇입니까?

  23. 23

    FXML을 AnchorPane에로드 할 때 자동으로 크기를 조정하는 방법은 무엇입니까?

  24. 24

    Odoo / OpenERP 주문 라인 필드를 고객의 필드에 따라 읽기 전용으로 설정하는 방법은 무엇입니까?

  25. 25

    특정 조건에 따라 CRM 엔터티의 "상태 이유"필드를 자동 업데이트하는 방법은 무엇입니까?

  26. 26

    CSS 만 사용하여 텍스트 영역의 크기를 자동으로 조정하는 방법은 무엇입니까?

  27. 27

    r의 조건에 따라 선택한 행으로 새 df를 만드는 방법은 무엇입니까?

  28. 28

    레일의 로케일에 따라 글꼴을 동적으로 설정하는 방법은 무엇입니까?

  29. 29

    하드 드라이브에 마운트 된 파티션으로 새 파티션의 크기를 조정 / 생성하는 방법은 무엇입니까?

뜨겁다태그

보관