試圖創建一個界面,用戶可以撰寫一串環繞在螢屏上的文本。
我創建了一個名為“TextArea”的 SwiftUI 頁面,我可以在需要時在另一個頁面上呼叫它。由于 TextEditor 不能放置占位符文本。我需要創建一個,這是我從其他用戶那里獲得的代碼。
import SwiftUI
import UIKit
struct TextArea: View {
@Binding var text: String
let placeholder: String
init(_ placeholder: String, text: Binding<String>) {
self.placeholder = placeholder
self._text = text
UITextView.appearance().backgroundColor = .clear
}
var body: some View {
ZStack(alignment: .topLeading) {
if text.isEmpty {
Text(placeholder)
.foregroundColor(Color(.placeholderText))
.padding(.horizontal, 8)
.padding(.vertical, 12)
}
TextEditor(text: $text)
.padding(4)
}
.font(.body)
}
}
然后在另一個 SwiftUI 頁面上,我用這段代碼呼叫它。
TextArea("What's Happening", text: $caption)
在該頁面的頂部,我建立了它
@State private var caption = ""
代碼編譯沒有錯誤,并且在模擬器中沒有問題。當我運行應用程式時,沒有占位符文本。TextEditor 作業正常且符合預期。唯一缺少的是占位符文本。
提前致謝!
uj5u.com熱心網友回復:
ZStack
從底部到頂部放置視圖。
以便交換您的占位符視圖和 TextEditor。
struct TextArea: View {
@Binding var text: String
let placeholder: String
init(_ placeholder: String, text: Binding<String>) {
self.placeholder = placeholder
self._text = text
UITextView.appearance().backgroundColor = .clear
}
var body: some View {
ZStack(alignment: .topLeading) {
TextEditor(text: $text) // <= Here
.padding(4)
if text.isEmpty {
Text(placeholder)
.foregroundColor(Color(.placeholderText))
.padding(.horizontal, 8)
.padding(.vertical, 12)
}
}
.font(.body)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/528932.html