TextBox

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Một TextBox cho phép người chơi cung cấp dữ liệu văn bản. Nó hoạt động tương tự như một TextButton , ngoại trừ việc một cái TextBox có thể được đặt vào trung tâm bằng cách nhấp chuột, nhấn hoặc gamepad selection. Trong

  • Nếu không có văn bản, PlaceholderText sẽ xuất hiện. Điều này hữu ích khi kêu gọi người chơi của loại hoặc định dạng dữ liệu mà họ nên nhập.
  • Bởi mặc định, thuộc tính ClearTextOnFocus được kích hoạt và đảm bảo không có văn bản nào khi một TextBox được tập trung. Điều này có thể không đẹp mắt cho văn bản mà người chơi có thể chỉnh sửa.
  • Thuộc tính MultiLine cho phép người chơi nhập nhiều dòng văn bản với những nhân vật dòng mới ( \n ).

The ContextActionService honors TextBox keybinds and will automatically prevent key press events from being passed to actions bound with ContextActionService:BindAction() . UserInputService.InputBegan and related events will still fire while a TextBox is in focus.

Tập Trung Nhàn

Có thể phát hiện và thay đổi trạng thái tập trung của một TextBox:

  • Bạn có thể sử dụng CaptureFocus khi một hội thoại xuất hiện để người chơi không phải nhấp vào một TextBox khi nó trở nên có sẵn; bạn có thể sử dụng Class.ContextActionService:BindAction()</
  • Bạn có thể xác định nếu một TextBox nào đó đang ở trong tập trung bằng cách sử dụng IsFocused . Hoặc, UserInputService:GetFocusedTextBox() có thể được sử dụng để kiểm tra nếu bất kỳ TextBox nào đang ở trong tập trung.
  • Khi người chơi đã hoàn thành việc nhập chữ, sự kiện FocusLost xảy ra, cho biết người dùng đã nhấn Enter để gửi chữ cùng với InputObject
  • Nếu một số vấn đề quan trọng khác xảy ra trong lúc trải nghiệm trò chơi, bạn có thể ReleaseFocus của TextBox để đảm bảo rằng lượng phím của người chơi trở về trò chơi của bạn.

Chỉnh Sửa Văn Bản

Một TextBox hỗ trợ lựa chọn văn bản thông qua các thuộc tính CursorPositionSelectionStart của nó. Sử dụng GetPropertyChangedSignal, bạn có thể xác định khi một l

Thông báo về lọc văn bản Games that facilitate player-to-player communication using text, such as custom chat or nametags, must properly filter such text using TextService:FilterStringAsync() or Chat:FilterStringAsync(). If this is not properly done, your game may receive moderation hành động.

Mẫu mã

TextBox Secret Word

-- Place this code in a LocalScript inside a TextBox
local textBox = script.Parent
local secretWord = "roblox"
local colorNormal = Color3.new(1, 1, 1) -- white
local colorWrong = Color3.new(1, 0, 0) -- red
local colorCorrect = Color3.new(0, 1, 0) -- green
-- Initialize the state of the textBox
textBox.ClearTextOnFocus = true
textBox.Text = ""
textBox.Font = Enum.Font.Code
textBox.PlaceholderText = "What is the secret word?"
textBox.BackgroundColor3 = colorNormal
local function onFocused()
textBox.BackgroundColor3 = colorNormal
end
local function onFocusLost(enterPressed, _inputObject)
if enterPressed then
local guess = textBox.Text
if guess == secretWord then
textBox.Text = "ACCESS GRANTED"
textBox.BackgroundColor3 = colorCorrect
else
textBox.Text = "ACCESS DENIED"
textBox.BackgroundColor3 = colorWrong
end
else
-- The player stopped editing without pressing Enter
textBox.Text = ""
textBox.BackgroundColor3 = colorNormal
end
end
textBox.FocusLost:Connect(onFocusLost)
textBox.Focused:Connect(onFocused)

Tóm Tắt

Thuộc Tính

  • Đọc Song Song

    Xác định whether clicking on the TextBox will clear its TextBox.Text property.

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song
  • Đọc Song Song

    Xác định sự thay đổi của trỏ chuột văn bản bằng dấu chấm câu trong các ký tự, hoặc -1 nếu không có trỏ chuột.

  • Ẩn
    Không Sao Chép
    Đọc Song Song

    Xác định chữ cái được sử dụng để hiển thị văn bản.

  • Đọc Song Song

    Xác định chữ cái được sử dụng để hiển thị văn bản.

  • Đọc Song Song

    Điều chỉnh khoảng cách giữa các dòng chữ trong TextBox .

  • Đọc Song Song

    Số lượng tối đa của các thẻ TextBox có thể hiển trình diễn.

  • Đọc Song Song

    Khi đặt cho true, text trong một TextBox có thể di chuyển lên nhiều dòng. Điều này cũng cho phép người chơi sử dụng Enter để di chuyển lên một dòng mới.

  • Đọc Song Song
  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song
  • Đọc Song Song

    Đặt màu chữ được sử dụng khi chưa có chữ nào được nhập vào TextBox.

  • Đọc Song Song

    Đặt văn bản được hiển thị khi chưa có văn bản nào được nhập vào TextBox.

  • Đọc Song Song

    Xác định có phải TextBox hiển thị dòng TextBox.Text bằng hình dạng văn bản phong phú không.

  • Đọc Song Song

    Xác định vị trí xuất phát của một lựa chọn văn bản, hoặc -1 nếu không có văn bản được chọn.

  • Đọc Song Song

    Nếu được đặt lại, nhập native vào trình duyệt thay vì bàn phím trên Roblox đã được tích hợp.

  • Đọc Song Song

    Xác định chuỗi được hiển thị bởi thành phần UI.

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Kích thước của văn bản trong một thành phần UI bị lệch.

  • Đọc Song Song

    Xác định màu của văn bản được hiển thị.

  • Đọc Song Song

    Xác định có phải người dùng có thể thay đổi Text .

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Whether the text fits within the constraints of the TextBox.

  • Đọc Song Song

    Đổi kích thước chữ để chúng phù hợp với thiết bị hiển thị nó.

  • Đọc Song Song

    Xác định chiều cao dòng chữ trong các khoảng cách.

  • Đọc Song Song

    Xác định màu của các đường nét (nét chân chóe).

  • Xác định độ trong suốt của các đường chữ (nét).

  • Đọc Song Song

    Xác định độ trong suốt của văn bản được hiển thị.

  • Điều khiển sự cắt xé của văn bản được hiển thị trong TextBox này.

  • Đọc Song Song

    Xác định nếu text wraps to multiple lines within the GUI element space, truncating excess text.

  • Xác định bố trí ngang của văn bản được hiển thị.

  • Xác định chỉnh dọc trong đó text được hiển thị.

Thuộc Tính kế thừa từ GuiObjectThuộc Tính kế thừa từ GuiBase2d

Phương Pháp

  • Bắt client tập trung vào TextBox.

  • Trả về true nếu textbox được tập trung, hoặc false nếu nó không.

  • ReleaseFocus(submitted : bool):void

    Bắt buộc khách hàng phải thoát khỏi TextBox.

Phương Pháp kế thừa từ GuiObject

Sự Kiện

Sự Kiện kế thừa từ GuiObjectSự Kiện kế thừa từ GuiBase2d
  • SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal

    Kích hoạt khi lựa chọn gamepad di chuyển đến, rời đi hoặc thay đổi trong khu vực GuiBase2d hoặc bất kỳ con cháu GuiObjects kế tiếp.

Thuộc Tính

ClearTextOnFocus

Đọc Song Song

Xác định whether clicking on the TextBox will clear its TextBox.Text property

ContentText

Chỉ Đọc
Không Sao Chép
Đọc Song Song

CursorPosition

Đọc Song Song

CursorPosition xác định thời gian trễ của text cursor trong bytes, hoặc -1 nếu TextBox hiện đang không được chỉnh sửa. Một giá trị 1 đại diện cho sự bắt đầu, vị trí trước khi người dùng đầu tiên trong

Nên lưu ý rằng các đơn vị của thuộc tính này là bytes và rằng nhiều ký tự không được hỗ trợ như các ký tự cầu nối – vị trí của thanh văn là 10, không phải 7, vì ký tự này sử dụng 4 octet.

Mẫu mã

TextBox Selections

local textBox = script.Parent
local function showSelection()
if textBox.CursorPosition == -1 or textBox.SelectionStart == -1 then
print("No selection")
else
local selectedText = string.sub(
textBox.Text,
math.min(textBox.CursorPosition, textBox.SelectionStart),
math.max(textBox.CursorPosition, textBox.SelectionStart)
)
print('The selection is:"', selectedText, '"')
end
end
textBox:GetPropertyChangedSignal("CursorPosition"):Connect(showSelection)
textBox:GetPropertyChangedSignal("SelectionStart"):Connect(showSelection)
Ẩn
Không Sao Chép
Đọc Song Song

Thuộc tínhFont chọn một trong vài bản chữ fonts được sử dụng để hiển thị chữ của thành phần UI. Một số font có dấu chỉ, hoạt động và / hoặc ánh sáng biến thể (vì không có thuộc tínhFont hoặc kiểu chữ).

Ngoài font "Legacy", mỗi font sẽ tạo ra chữ văn bản với chiều cao dòng bằng với đặ性 TextBox.TextSize .Font "Code" là font monospace duy nhất. Nó có đặ性 độc đáo mà mỗi nhân vật có tỷ lệ chiều rộng và chiều cao tư

Đặ性 này được giữ đồng bộ với đặt tính TextBox.FontFace . Khi cài đặtFont, đặtFont sẽ được đặt để Font.fromEnum(value) .

Mẫu mã

Cycle Font

local textLabel = script.Parent
while true do
-- Iterate over all the different fonts
for _, font in pairs(Enum.Font:GetEnumItems()) do
textLabel.Font = font
textLabel.Text = font.Name
task.wait(1)
end
end
Show All Fonts

local frame = script.Parent
-- Create a TextLabel displaying each font
for _, font in pairs(Enum.Font:GetEnumItems()) do
local textLabel = Instance.new("TextLabel")
textLabel.Name = font.Name
-- Set the text properties
textLabel.Text = font.Name
textLabel.Font = font
-- Some rendering properties
textLabel.TextSize = 24
textLabel.TextXAlignment = Enum.TextXAlignment.Left
-- Size the frame equal to the height of the text
textLabel.Size = UDim2.new(1, 0, 0, textLabel.TextSize)
-- Add to the parent frame
textLabel.Parent = frame
end
-- Layout the frames in a list (if they aren't already)
if not frame:FindFirstChildOfClass("UIListLayout") then
local uiListLayout = Instance.new("UIListLayout")
uiListLayout.Parent = frame
end

FontFace

Đọc Song Song

Thuộc tính FontFace tương tự thuộc tínhFont, nhưng cho phép bạn cài đặt các kiểu chữ của bạn không tồn tại trong danh sách kiểu chữ.

Điều này được giữ đồng bộ với điều kiện TextBox.Font . Khi cài đặt FontFace,Font được đặt vào giá trị danh mục tương ứng tương ứng hoặc Enum.Font.Unknown nếu không có trùng khớp.

LineHeight

Đọc Song Song

Điều khiển chiều cao của các dòng, như một nhiều của kích thước hàng gốc của chữ, bằng cách thay đổi kích thước khe cắm giữa các dòng của văn bản trong TextBox . Các giá trị hợp lệ có thể lớn hơn hoặc nhỏ hơn 1.0, mặc định là 1.0.

MaxVisibleGraphemes

Đọc Song Song

Thuộc tính này điều khiển số lượng tối đa của графема (hoặc đơn vị văn bản) được hiển thị trên TextBox, независимо от того có phải hiển thị TextBox.PlaceholderText hoặc TextBox.Text .

Đổi tính chất không đổi vị trí hoặc kích thước của các ô thị hiện có - trang bị sẽ được tính toán như thể tất cả các ô thị hiện có.

Đặt thuộc tính để -1 tắt giới hạn và hiển thị toàn bộ TextBox.Text .

MultiLine

Đọc Song Song

Khi đặt cho true, text trong một TextBox có thể di chuyển lên nhiều dòng. Điều này cũng cho phép người chơi sử dụng Enter để di chuyển lên một dòng mới.

OpenTypeFeatures

Đọc Song Song

OpenTypeFeaturesError

Chỉ Đọc
Không Sao Chép
Đọc Song Song

PlaceholderColor3

Đọc Song Song

Đặt màu chữ được sử dụng khi chưa có chữ nào được nhập vào TextBox.

PlaceholderText

Đọc Song Song

Đặt văn bản được hiển thị khi chưa có văn bản nào được nhập vào TextBox.

RichText

Đọc Song Song

Thuộc tính này xác định whether the TextBox render the TextBox.Text string using rich text formatting. Rich text uses simple markup tags to style sections of the string in bold, italics, specific colors, and more.

Để sử dụng văn bản mở rộng, hãy bao gồm các thẻ biểu tượng hóa trong dòng TextBox.Text của chuỗi.

Lưu ý rằng khi TextBox có thuộc tính này và hộp nhận được sự tập trung, người dùng sẽ có thể chỉnh sửa và tương tác với dòng chuỗi XML hoàn chỉnh, bao gồm tất cả các thẻ biểu tượng. Khi tập trung bị mất, chữ văn sẽ tự động xử lý và hiển thị

SelectionStart

Đọc Song Song

Xác định vị trí xuất phát của một lựa chọn văn bản, hoặc -1 nếu TextBox không có phạm vi chọn chữ. Nếu giá trị là -1 hoặc tương đương với CursorPosition , thì không có phạm vi chọn chữ đ

Mẫu mã

TextBox Selections

local textBox = script.Parent
local function showSelection()
if textBox.CursorPosition == -1 or textBox.SelectionStart == -1 then
print("No selection")
else
local selectedText = string.sub(
textBox.Text,
math.min(textBox.CursorPosition, textBox.SelectionStart),
math.max(textBox.CursorPosition, textBox.SelectionStart)
)
print('The selection is:"', selectedText, '"')
end
end
textBox:GetPropertyChangedSignal("CursorPosition"):Connect(showSelection)
textBox:GetPropertyChangedSignal("SelectionStart"):Connect(showSelection)

ShowNativeInput

Đọc Song Song

Nếu được đặt lại, nhập native vào trình duyệt thay vì bàn phím trên Roblox đã được tích hợp.

Text

Đọc Song Song

Thuộc tính Text xác định nội dung được hiển thị bởi thành phần UI. Các thuộc tính visual của chuỗi

Có thể tạo ra các biểu tượng emoji (như cái 😃) và các biểu tượng khác. Các biểu tượng này được tác động bởi thuộc tính TextBox.TextColor3 . Các biểu tượng này có thể được pasted vào Script

Đặc tính này có thể chứa các ký tự mới, nhưng nó không thể được gõ trong các ký tự mới trong các cửộc sống. Tương tự, đặc tính này có thể chứa một nhân vật tab, nhưng nó sẽ được hiển thị như một dấu câu trong các cửộc sống.

Mẫu mã

Fading Banner

local TweenService = game:GetService("TweenService")
local textLabel = script.Parent
local content = {
"Welcome to my game!",
"Be sure to have fun!",
"Please give suggestions!",
"Be nice to other players!",
"Don't grief other players!",
"Check out the shop!",
"Tip: Don't die!",
}
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local RNG = Random.new()
local fadeIn = TweenService:Create(textLabel, tweenInfo, {
TextTransparency = 0,
})
local fadeOut = TweenService:Create(textLabel, tweenInfo, {
TextTransparency = 1,
})
local lastIndex
while true do
-- Step 0: Fade out before doing anything
fadeOut:Play()
task.wait(tweenInfo.Time)
-- Step 1: pick content that wasn't the last displayed
local index
repeat
index = RNG:NextInteger(1, #content)
until lastIndex ~= index
-- Make sure we don't show the same thing next time
lastIndex = index
-- Step 2: show the content
textLabel.Text = content[index]
fadeIn:Play()
task.wait(tweenInfo.Time + 1)
end
"Kaboom!" Text

local textLabel = script.Parent
textLabel.Text = "Kaboom!"
while true do
for size = 5, 100, 5 do
textLabel.TextSize = size
textLabel.TextTransparency = size / 100
task.wait()
end
task.wait(1)
end
Show All Fonts

local frame = script.Parent
-- Create a TextLabel displaying each font
for _, font in pairs(Enum.Font:GetEnumItems()) do
local textLabel = Instance.new("TextLabel")
textLabel.Name = font.Name
-- Set the text properties
textLabel.Text = font.Name
textLabel.Font = font
-- Some rendering properties
textLabel.TextSize = 24
textLabel.TextXAlignment = Enum.TextXAlignment.Left
-- Size the frame equal to the height of the text
textLabel.Size = UDim2.new(1, 0, 0, textLabel.TextSize)
-- Add to the parent frame
textLabel.Parent = frame
end
-- Layout the frames in a list (if they aren't already)
if not frame:FindFirstChildOfClass("UIListLayout") then
local uiListLayout = Instance.new("UIListLayout")
uiListLayout.Parent = frame
end
Long Text Wrapping

local textLabel = script.Parent
-- This text wrapping demo is best shown on a 200x50 px rectangle
textLabel.Size = UDim2.new(0, 200, 0, 50)
-- Some content to spell out
local content = "Here's a long string of words that will "
.. "eventually exceed the UI element's width "
.. "and form line breaks. Useful for paragraphs "
.. "that are really long."
-- A function that will spell text out two characters at a time
local function spellTheText()
-- Iterate from 1 to the length of our content
for i = 1, content:len() do
-- Get a substring of our content: 1 to i
textLabel.Text = content:sub(1, i)
-- Color the text if it doesn't fit in our box
if textLabel.TextFits then
textLabel.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textLabel.TextColor3 = Color3.new(1, 0, 0) -- Red
end
-- Wait a brief moment on even lengths
if i % 2 == 0 then
task.wait()
end
end
end
while true do
-- Spell the text with scale/wrap off
textLabel.TextWrapped = false
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with wrap on
textLabel.TextWrapped = true
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with text scaling on
-- Note: Text turns red (TextFits = false) once text has to be
-- scaled down in order to fit within the UI element.
textLabel.TextScaled = true
-- Note: TextWrapped is enabled implicitly when TextScaled = true
--textLabel.TextWrapped = true
spellTheText()
task.wait(1)
end
Emoji in Text

local textLabel = script.Parent
local moods = {
["happy"] = "😃",
["sad"] = "😢",
["neutral"] = "😐",
["tired"] = "😫",
}
while true do
for mood, face in pairs(moods) do
textLabel.Text = "I am feeling " .. mood .. "! " .. face
task.wait(1)
end
end

TextBounds

Chỉ Đọc
Không Sao Chép
Đọc Song Song

Giao hàng đọc chỉ định TextBounds phản ánh kích thước chính xác của văn bản đã được hiển thị trong các khoảng cách. Với những lời khác, nếu bạn cố gắng để đặt văn bản vào một hình chữ nhật, thì định tuyến này sẽ phản ánh các kích thước tối thiểu của hình chữ nhậ

Bằng cách sử dụng TextService:GetTextSize() , bạn có thể dự đoán những gì TextBounds sẽ có trên một TextLabel được cung cấp một chuỗi, TextBox.Font , TextBox.TextSize và kích thước khung.

Mẫu mã

Dynamic TextBox Size

local textBox = script.Parent
-- The smallest the TextBox will go
local minWidth, minHeight = 10, 10
-- Set alignment so our text doesn't wobble a bit while we type
textBox.TextXAlignment = Enum.TextXAlignment.Left
textBox.TextYAlignment = Enum.TextYAlignment.Top
local function updateSize()
textBox.Size = UDim2.new(0, math.max(minWidth, textBox.TextBounds.X), 0, math.max(minHeight, textBox.TextBounds.Y))
end
textBox:GetPropertyChangedSignal("TextBounds"):Connect(updateSize)

TextColor3

Đọc Song Song

Thuộc tính này xác định màu của tất cả các chữ cái được hiển thị bởi một thành phần GUI . This property along with TextBox.Font , TextBox.TextSize và <

Quan trọng là text được đọc dễ dàng bởi người chơi! Hãy chắc chắn chọn màu có độ bão hòa thấp, như trắng, màu xám hoặc đen. Make sure the color of your text is contrasted by the TextBox.BackgroundColor3 of the UI element. If the element has a

Mẫu mã

Vowel Detector

local textBox = script.Parent
local function hasVowels(str)
return str:lower():find("[aeiou]")
end
local function onTextChanged()
local text = textBox.Text
-- Check for vowels
if hasVowels(text) then
textBox.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textBox.TextColor3 = Color3.new(1, 0, 0) -- Red
end
end
textBox:GetPropertyChangedSignal("Text"):Connect(onTextChanged)
TextBox Secret Word

-- Place this code in a LocalScript inside a TextBox
local textBox = script.Parent
local secretWord = "roblox"
local colorNormal = Color3.new(1, 1, 1) -- white
local colorWrong = Color3.new(1, 0, 0) -- red
local colorCorrect = Color3.new(0, 1, 0) -- green
-- Initialize the state of the textBox
textBox.ClearTextOnFocus = true
textBox.Text = ""
textBox.Font = Enum.Font.Code
textBox.PlaceholderText = "What is the secret word?"
textBox.BackgroundColor3 = colorNormal
local function onFocused()
textBox.BackgroundColor3 = colorNormal
end
local function onFocusLost(enterPressed, _inputObject)
if enterPressed then
local guess = textBox.Text
if guess == secretWord then
textBox.Text = "ACCESS GRANTED"
textBox.BackgroundColor3 = colorCorrect
else
textBox.Text = "ACCESS DENIED"
textBox.BackgroundColor3 = colorWrong
end
else
-- The player stopped editing without pressing Enter
textBox.Text = ""
textBox.BackgroundColor3 = colorNormal
end
end
textBox.FocusLost:Connect(onFocusLost)
textBox.Focused:Connect(onFocused)
Countdown Text

-- Place this code in a LocalScript within a TextLabel/TextButton
local textLabel = script.Parent
-- Some colors we'll use with TextColor3
local colorNormal = Color3.new(0, 0, 0) -- black
local colorSoon = Color3.new(1, 0.5, 0.5) -- red
local colorDone = Color3.new(0.5, 1, 0.5) -- green
-- Loop infinitely
while true do
-- Count backwards from 10 to 1
for i = 10, 1, -1 do
-- Set the text
textLabel.Text = "Time: " .. i
-- Set the color based on how much time is left
if i > 3 then
textLabel.TextColor3 = colorNormal
else
textLabel.TextColor3 = colorSoon
end
task.wait(1)
end
textLabel.Text = "GO!"
textLabel.TextColor3 = colorDone
task.wait(2)
end
Game State Text

local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Place a StringValue called "GameState" in the ReplicatedStorage
local vGameState = ReplicatedStorage:WaitForChild("GameState")
-- Place this code in a TextLabel
local textLabel = script.Parent
-- Some colors we'll use with TextColor3
local colorNormal = Color3.new(0, 0, 0) -- black
local colorCountdown = Color3.new(1, 0.5, 0) -- orange
local colorRound = Color3.new(0.25, 0.25, 1) -- blue
-- We'll run this function to update the TextLabel as the state of the
-- game changes.
local function update()
-- Update the text
textLabel.Text = "State: " .. vGameState.Value
-- Set the color of the text based on the current game state
if vGameState.Value == "Countdown" then
textLabel.TextColor3 = colorCountdown
elseif vGameState.Value == "Round" then
textLabel.TextColor3 = colorRound
else
textLabel.TextColor3 = colorNormal
end
end
-- Pattern: update once when we start and also when vGameState changes
-- We should always see the most updated GameState.
update()
vGameState.Changed:Connect(update)

TextDirection

Đọc Song Song

TextEditable

Đọc Song Song

TextEditable xác định whether the user can change the Text through input. It is recommended to disable ClearTextOnFocus when this property is disabled, otherwise the Text could be cleared on-focus. This property is useful to make read-only TextBoxes from which content can be복사 trong game.

TextFits

Chỉ Đọc
Không Sao Chép
Đọc Song Song

Whether the text fits within the constraints of the TextBox.

TextScaled

Đọc Song Song

Thay vì sử dụng TextScaled, chúng tôi khuyến nghị bạn xem xét sử dụng AutomaticSize, một phương pháp mới để thu nhỏ UI một cách tự động mà sẽ cho bạn kết quả thị giác tốt nhất có thể.

Thuộc tính TextScaled xác định có phải text được nhân bằng cỡ nội dung trên toàn bộ khu vực UI không? Khi bật điều này, TextBox.TextSize được bỏ qua và TextBox.TextWrapped được tự động bật. Th

Khi sử dụng thuộc tính này cho UI screen-space, có thể đáng khuyến khích sử dụng một UITextSizeConstraint để hạn chế phạm vi các kích thước chữ khải.

TextScaled và AutomaticSize

Được khuyến nghị rằng các nhà phát triển tránh sử dụng TextScaled và điều chỉnh UI để tận dụng tính tự động thay đổi kích thước nhưng thay vào đó là tính tự động thay đổi kích thước. Dưới đây là sự khác biệt chính giữa hai tính năng này:

  • TextScaled tăng cỡ nội dung (văn bản) để chấp nhận UI. Mà không có sự cân nhắc kỹ lưỡng, một số văn bản có thể trở nên không đọc được nếu bạn thu nhỏ quá nhỏ.
  • Kích thước tự động thay đổi kích thước của UI để chứa nội dung.

Với AutomaticSize, bạn có thể điều chỉnh UI của bạn để chứa nội dung (văn bản) mà vẫn duy trì kích thước chữ (kiểu chữ). Để biết thêm thông tin về cách sử dụng kiểu chữ tự động, hãy xem bài viết UI tự động Size.

Chúng tôi khuyến nghị bạn không áp dụng cả TextScaled và AutomaticSize trên cùng một đối tượng UI. Nếu bạn áp dụng cả hai đặt tính này:

  • Kích thước tự động xác định số lượng không gian tối đa mà một GuiObject có thể sử dụng (trong trường hợp này, text)
  • TextScaled sử dụng không gian có sẵn được xác định bởi AutomaticSize, để thay đổi kích thước chữ vào không gian có sẵn, nhưng sẽ mở rộng lên đến kích thước chữ tối đa (100), nếu không có hạn chế kích thước
  • Kết quả cuối cùng sẽ là: text đi đến 100 font size và UI object sẽ mở rộng để phù hợp với những chữ

Sử dụng cả AutomaticSize và TextScaled cùng một lúc có thể dẫn đến sự khác biệt về mức độ thu nhỏ lớn hơn so với khi AutomaticSize bị tắt.

Mẫu mã

Long Text Wrapping

local textLabel = script.Parent
-- This text wrapping demo is best shown on a 200x50 px rectangle
textLabel.Size = UDim2.new(0, 200, 0, 50)
-- Some content to spell out
local content = "Here's a long string of words that will "
.. "eventually exceed the UI element's width "
.. "and form line breaks. Useful for paragraphs "
.. "that are really long."
-- A function that will spell text out two characters at a time
local function spellTheText()
-- Iterate from 1 to the length of our content
for i = 1, content:len() do
-- Get a substring of our content: 1 to i
textLabel.Text = content:sub(1, i)
-- Color the text if it doesn't fit in our box
if textLabel.TextFits then
textLabel.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textLabel.TextColor3 = Color3.new(1, 0, 0) -- Red
end
-- Wait a brief moment on even lengths
if i % 2 == 0 then
task.wait()
end
end
end
while true do
-- Spell the text with scale/wrap off
textLabel.TextWrapped = false
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with wrap on
textLabel.TextWrapped = true
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with text scaling on
-- Note: Text turns red (TextFits = false) once text has to be
-- scaled down in order to fit within the UI element.
textLabel.TextScaled = true
-- Note: TextWrapped is enabled implicitly when TextScaled = true
--textLabel.TextWrapped = true
spellTheText()
task.wait(1)
end

TextSize

Đọc Song Song

Thuộc tính TextSize xác định chiều cao trong các ô chữ được hiển thị. Đơn vị được xác định bằng các ô, chứ không phải dấu (như được sử dụng trong hầu hết các chương trình chỉnh sửa tài liệu).Font "Legacy" không hỗ trợ thuộc tính này.

Mẫu mã

"Kaboom!" Text

local textLabel = script.Parent
textLabel.Text = "Kaboom!"
while true do
for size = 5, 100, 5 do
textLabel.TextSize = size
textLabel.TextTransparency = size / 100
task.wait()
end
task.wait(1)
end

TextStrokeColor3

Đọc Song Song

Thuộc tính TextStrokeColor3 định màu của cái đoạn, hoặc nét tương tự của chữ được hiển thị. This property and TextBox.TextStrokeTransparency định màu tương tự của cái đoạn.

Text stroke được hiển thị trước text thường và chỉ là 4 render thường của cùng một text ở +/- 1 pixel offsets trong mỗi hướng. Text stroke render hoạt động độc lập và giống nhau đối với TextBox.TextColor3TextBox.TextTransparency .

Mẫu mã

Text Highlight Oscillation

local textLabel = script.Parent
-- How fast the highlight ought to blink
local freq = 2
-- Set to yellow highlight color
textLabel.TextStrokeColor3 = Color3.new(1, 1, 0)
while true do
-- math.sin oscillates from -1 to 1, so we change the range to 0 to 1:
local transparency = math.sin(workspace.DistributedGameTime * math.pi * freq) * 0.5 + 0.5
textLabel.TextStrokeTransparency = transparency
task.wait()
end

TextStrokeTransparency

Đọc Song Song

Thuộc tính TextStrokeTransparency cài đặt độ trong suốt của các đường nét hoặc nét bên trên của chữ được hiển thị. Thuộc tính này và TextBox.TextStrokeColor3 xác định các thuộc tính thị giác của các đường nét.

Hiệu ứng chữ là hiệu ứng chữ được tạo trước khi thực hiện chữ thường và chỉ đơn gi

Mẫu mã

Text Highlight Oscillation

local textLabel = script.Parent
-- How fast the highlight ought to blink
local freq = 2
-- Set to yellow highlight color
textLabel.TextStrokeColor3 = Color3.new(1, 1, 0)
while true do
-- math.sin oscillates from -1 to 1, so we change the range to 0 to 1:
local transparency = math.sin(workspace.DistributedGameTime * math.pi * freq) * 0.5 + 0.5
textLabel.TextStrokeTransparency = transparency
task.wait()
end

TextTransparency

Đọc Song Song

Thuộc tính TextColor3 xác định độ trong suốt của tất cả các kết cấu chữ được hiển thị bởi một thành phần UI. Thuộc tính này cùng với TextBox.Font , TextBox.TextSize và Class.Toolbar.Text

Việc thay đổi chữ trong một vòng lặp sử dụng một số bằng văn bản là một cách tuyệt vời để thu hút sự chú ý của người chơi đến văn bản xuất hiện trên màn hình.


-- Count backwards from 1 to 0, decrementing by 0.1
for i = 1, 0, -0.1 do
textLabel.TextTransparency = i
task.wait(0.1)
end

Mẫu mã

Fading Banner

local TweenService = game:GetService("TweenService")
local textLabel = script.Parent
local content = {
"Welcome to my game!",
"Be sure to have fun!",
"Please give suggestions!",
"Be nice to other players!",
"Don't grief other players!",
"Check out the shop!",
"Tip: Don't die!",
}
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local RNG = Random.new()
local fadeIn = TweenService:Create(textLabel, tweenInfo, {
TextTransparency = 0,
})
local fadeOut = TweenService:Create(textLabel, tweenInfo, {
TextTransparency = 1,
})
local lastIndex
while true do
-- Step 0: Fade out before doing anything
fadeOut:Play()
task.wait(tweenInfo.Time)
-- Step 1: pick content that wasn't the last displayed
local index
repeat
index = RNG:NextInteger(1, #content)
until lastIndex ~= index
-- Make sure we don't show the same thing next time
lastIndex = index
-- Step 2: show the content
textLabel.Text = content[index]
fadeIn:Play()
task.wait(tweenInfo.Time + 1)
end
"Kaboom!" Text

local textLabel = script.Parent
textLabel.Text = "Kaboom!"
while true do
for size = 5, 100, 5 do
textLabel.TextSize = size
textLabel.TextTransparency = size / 100
task.wait()
end
task.wait(1)
end

TextTruncate

Đọc Song Song

Điều khiển sự cắt xé của văn bản được hiển thị trong TextBox này.

TextWrapped

Đọc Song Song

Khi bật, thuộc tính này sẽ hiển thị chữ trên nhiều dòng trong không gian của một GUI thành phần để TextBox.TextBounds sẽ không bao giờ vượt quá GuiBase2d.AbsoluteSize của thành phần GUI.

Điều này đạt được bằng cách phân các dòng văn bản thành nhiều dòng. Các dòng cắt sẽ ưa thích dấu trắng; nếu một từ không được cắt đứt vượt qua chiều rộng của thành phần, từ đó sẽ được chia thành nhiều dòng.

Nếu các dòng nối dòng tiếp theo gây ra sự thay đổi chiều cao dọc của văn bản (nhà cung cấp Y của TextBox.TextBounds ) quá chiều cao dọc của thành phần (nhà cung cấp Y của GuiBase2d.AbsoluteSize), thì dòng đó sẽ không được hiển thị.

Mẫu mã

Long Text Wrapping

local textLabel = script.Parent
-- This text wrapping demo is best shown on a 200x50 px rectangle
textLabel.Size = UDim2.new(0, 200, 0, 50)
-- Some content to spell out
local content = "Here's a long string of words that will "
.. "eventually exceed the UI element's width "
.. "and form line breaks. Useful for paragraphs "
.. "that are really long."
-- A function that will spell text out two characters at a time
local function spellTheText()
-- Iterate from 1 to the length of our content
for i = 1, content:len() do
-- Get a substring of our content: 1 to i
textLabel.Text = content:sub(1, i)
-- Color the text if it doesn't fit in our box
if textLabel.TextFits then
textLabel.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textLabel.TextColor3 = Color3.new(1, 0, 0) -- Red
end
-- Wait a brief moment on even lengths
if i % 2 == 0 then
task.wait()
end
end
end
while true do
-- Spell the text with scale/wrap off
textLabel.TextWrapped = false
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with wrap on
textLabel.TextWrapped = true
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with text scaling on
-- Note: Text turns red (TextFits = false) once text has to be
-- scaled down in order to fit within the UI element.
textLabel.TextScaled = true
-- Note: TextWrapped is enabled implicitly when TextScaled = true
--textLabel.TextWrapped = true
spellTheText()
task.wait(1)
end

TextXAlignment

Đọc Song Song

TextXAlignment xác định hướng dọc (X-axi) của văn bản được hiển thị trong không gian của một thành phần UI. Nó hoạt động tương tự như property text-align bên trái, bên phải và trung tâm (không có lựa chọn chỉnh sửa). Đối với Left và Right, mỗ

Thuộc tính này được sử dụng kết hợp với TextBox.TextYAlignment để xác định hoàn toàn vị trí trên cả hai trục. Thuộc tính này sẽ không ảnh hưởng đến các thuộc tính đọc TextBox.TextBoundsTextBox.TextFits .

Mẫu mã

Text Alignment

-- Paste this in a LocalScript within a TextLabel/TextButton/TextBox
local textLabel = script.Parent
local function setAlignment(xAlign, yAlign)
textLabel.TextXAlignment = xAlign
textLabel.TextYAlignment = yAlign
textLabel.Text = xAlign.Name .. " + " .. yAlign.Name
end
while true do
-- Iterate over both TextXAlignment and TextYAlignment enum items
for _, yAlign in pairs(Enum.TextYAlignment:GetEnumItems()) do
for _, xAlign in pairs(Enum.TextXAlignment:GetEnumItems()) do
setAlignment(xAlign, yAlign)
task.wait(1)
end
end
end

TextYAlignment

Đọc Song Song

TextYAlignment xác định vị trí dọc (Y-ax) của văn bản được hiển thị trong không gian của thành phần UI. Đối với Top và Bottom, văn bản được hiển thị như văn bản trên cùng/văn bản dưới cùng của khu vực hộp thoại. Đối vớ

Thuộc tính này được sử dụng kết hợp với TextBox.TextXAlignment để xác định hoàn toàn vị trí trên cả hai trục. Thuộc tính này sẽ không ảnh hưởng đến các thuộc tính đọc TextBox.TextBoundsTextBox.TextFits .

Mẫu mã

Text Alignment

-- Paste this in a LocalScript within a TextLabel/TextButton/TextBox
local textLabel = script.Parent
local function setAlignment(xAlign, yAlign)
textLabel.TextXAlignment = xAlign
textLabel.TextYAlignment = yAlign
textLabel.Text = xAlign.Name .. " + " .. yAlign.Name
end
while true do
-- Iterate over both TextXAlignment and TextYAlignment enum items
for _, yAlign in pairs(Enum.TextYAlignment:GetEnumItems()) do
for _, xAlign in pairs(Enum.TextXAlignment:GetEnumItems()) do
setAlignment(xAlign, yAlign)
task.wait(1)
end
end
end

Phương Pháp

CaptureFocus

void

Bắt client tập trung vào TextBox.


Lợi Nhuận

void

Mẫu mã

TextBox:CaptureFocus

local ContextActionService = game:GetService("ContextActionService")
local ACTION_NAME = "FocusTheTextBox"
local textBox = script.Parent
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_NAME and inputState == Enum.UserInputState.End then
textBox:CaptureFocus()
end
end
ContextActionService:BindAction(ACTION_NAME, handleAction, false, Enum.KeyCode.Q)

IsFocused

Trả về true nếu textbox được tập trung, hoặc false nếu nó không.


Lợi Nhuận

ReleaseFocus

void

Bắt buộc khách hàng phải bỏ tập trung vào TextBox. Độ submitted của tham số cho phép bạn qua độ enterPressed trong sự kiện TextBox.FocusLost.

Món đồ này nên được sử dụng với một LocalScript để hoạt động như đã mong đợi trong chế độ trực tuyến.

Mã được hiển thị bên dưới sẽ buộc khách hàng phải thoát khỏi 'Texture' sau 5 giây kể từ khi nó được chọn:


local TextBox = script.Parent
TextBox.Focused:Connect(function()
wait(5)
TextBox:ReleaseFocus()
end)

Vui lòng lưu ý rằng ví dụ trên đã cho thấy nó đang ở trong một LocalScript, là con của một TextBox.

Tham Số

submitted: bool
Giá Trị Mặc Định: false

Lợi Nhuận

void

Mẫu mã

TextBox:ReleaseFocus

local textBox = script.Parent
local function onFocused()
task.wait(5)
textBox:ReleaseFocus()
end
textBox.Focused:Connect(onFocused)

Sự Kiện

FocusLost

Khi khách hàng bỏ cuộn dữ liệu ra khỏi TextBox - thường là khi khách hàng nhấp chuột / nhấp chuột ngoài TextBox. Điều này cũng kích hoạt nếu TextBox yêu cầu tập trung vào người dùng.

Nó có thể được sử dụng cùng với TextBox.Focused để theo dõi khi một TextBox thắng và mất tập trung.

Xem thêm các UserInputService.TextBoxFocusedUserInputService.TextBoxFocusReleased cho các chức năng tương tự sử dụng dịch vụ UserInputService.

Sự kiện này chỉ bắt đầu khi được sử dụng trong một LocalScript .

Tham Số

enterPressed: bool

Một biểu tượngBoolean cho biết có phải nhấn Enter để mất tập trung ( true ) hay không ( false ).

inputThatCausedFocusLoss: InputObject

Một InputObject instace cho thấy loại nhập nào gây ra việc mất tập trung của TextBox.


Mẫu mã

TextBox.FocusLost1

local gui = script.Parent
local textBox = gui.TextBox
local function focusLost(enterPressed)
if enterPressed then
print("Focus was lost because enter was pressed!")
else
print("Focus was lost without enter being pressed")
end
end
textBox.FocusLost:Connect(focusLost)
FocusLost

local textBox = script.Parent
local function onFocusLost(enterPressed, inputThatCausedFocusLost)
if enterPressed then
print("Player pressed Enter")
else
print("Player pressed", inputThatCausedFocusLost.KeyCode)
end
end
textBox.FocusLost:Connect(onFocusLost)

Focused

Khi TextBox lấy được sự tập trung - thường là khi một client nhấp vào một TextBox để bắt đầu nhập chữ. Điều này cũng kích hoạt nếu một TextBox buộc tập trung vào người dùng.

Nó có thể được sử dụng cùng với TextBox.FocusLost để theo dõi khi một TextBox thắng và mất tập trung.

Xem thêm các UserInputService.TextBoxFocusedUserInputService.TextBoxFocusReleased cho các chức năng tương tự sử dụng dịch vụ UserInputService.

Sự kiện này chỉ bắt đầu khi được sử dụng trong một LocalScript .


Mẫu mã

Focus

local textBox = script.Parent
local function onFocused()
print("Focused")
end
textBox.Focused:Connect(onFocused)

ReturnPressedFromOnScreenKeyboard