cacao/src/input/traits.rs

38 lines
1.3 KiB
Rust
Raw Normal View History

//! Various traits used for Labels.
use crate::input::TextField;
pub trait TextFieldDelegate {
/// Used to cache subclass creations on the Objective-C side.
/// You can just set this to be the name of your view type. This
/// value *must* be unique per-type.
const NAME: &'static str;
/// You should rarely (read: probably never) need to implement this yourself.
/// It simply acts as a getter for the associated `NAME` const on this trait.
fn subclass_name(&self) -> &'static str {
Self::NAME
}
/// Posts a notification when the text is no longer in edit mode.
fn text_did_end_editing(&self, _value: String) {}
/// Requests permission to begin editing a text object.
fn text_should_begin_editing(&self, _value: String) -> bool {
true
}
/// Posts a notification to the default notification center that the text is about to go into edit mode.
fn text_did_begin_editing(&self, _value: String) {}
/// Posts a notification when the text changes, and forwards the message to the text fields cell if it responds.
fn text_did_change(&self, _value: String) {}
/// Performs validation on the text fields new value.
fn text_should_end_editing(&self, _value: String) -> bool {
true
}
fn did_load(&mut self, view: TextField) {}
}