Eu tenho UITextView *_masterText
e depois da setText
fonte da propriedade do método de chamada está sendo redefinida. Está acontecendo depois que eu mudo o sdk 7. _masterText é IBOutlet
, global e propriedades são definidas no storyboard. Sou só eu ou isso é bug geral do SDK?
@interface myViewController : UIViewController
{
IBOutlet UITextView *_masterText;
}
@implementation myViewController
-(void)viewWillAppear:(BOOL)animated
{
[_masterText setText:@"New text"];
}
ios
cocoa-touch
fonts
uitextview
Błażej
fonte
fonte
Encontrei o mesmo problema (no Xcode 6.1) e, embora a resposta de John Cogan funcionasse para mim, descobri que estender a classe UITextView com uma categoria era uma solução melhor para o meu projeto em particular.
interface
implementação
fonte
extension UITextView { func setSafeText(text: String){ let originalSelectable = selectable selectable = true self.text = text selectable = originalSelectable } }
Se você deseja que sua exibição de texto seja "somente leitura", marque Editável e Selecionável e desmarque a opção Interação do usuário ativada. Com isso, o UITextView estava se comportando como eu queria
fonte
Esse problema e a resposta acima ajudaram, mas eu adicionei um invólucro ao meu código ViewController da seguinte maneira e passe a instância e o texto do uiview para alterar e a função do invólucro alterna o valor Selecionável, altera o texto e o desliga novamente. Útil quando você precisa que o uitextview esteja sempre desativado por padrão.
fonte
EDIT:
A configuração da fonte para o UITextView no iOS 7 funcionará para mim, se primeiro você definir o texto e depois definir a fonte:
Em um arquivo XIB, se você adicionar algum texto ao seu UITextView e alterar a fonte ou a cor, ele funcionará.
fonte
Aqui está uma solução rápida de subclasse que costumo usar para esse problema.
fonte
Esse problema ressurgiu no Xcode 8. Foi assim que eu o corrigi:
A extensão foi alterada para:
e verificou a opção Selecionável no Interface Builder.
Não é muito elegante ter esse parâmetro 'selecionável', mas serve.
fonte
No iOS 8.3, a solução alternativa da configuração "selecionável" para SIM antes do setText e NÃO depois, não a corrigiu.
Descobri que também era necessário definir "selecionável" como YES no storyboard antes que isso funcionasse.
fonte
Isso funcionou para mim:
fonte
Para mim, com texto atribuído, eu só precisava definir a fonte no dicionário de atributos, em vez de defini-la em seu próprio campo.
fonte
Estou tendo esse problema para. Uma solução rápida e amigável da resposta de @Ken Steele. Estendo o UITextView e adiciono uma propriedade computada.
espero que ajude.
fonte
Já faz 3 anos e o bug ainda existe na versão estável mais recente do Xcode (7.3). Claramente, a Apple não irá corrigi-lo tão cedo, deixando aos desenvolvedores duas opções: deixar selecionável ativado e definir UserInteractionEnabled como false ou swizzling de método.
Se você tiver um botão no seu textView, o primeiro não será suficiente.
Solução sem necessidade de alteração de código no swift:
Objetivo-C:
fonte
Usando a solução alternativa discutida neste problema, esta extensão ao UITextView fornece uma
setTextInCurrentStyle()
função. Baseado na solução de Alessandro Ranaldi, mas não requer que o atual valor isSelectable seja passado para a função.fonte