2013-10-16 12 views
5

Se si crea un InputDialog con inputdlg e una risposta di default, sembra che che:Come pre-impostare cursore o la selezione per la risposta predefinita in ingresso dialogo

enter image description here

Quale comando callback ho bisogno di farlo sembrare così?

enter image description here

La documentazione manca molto qui. È una sorta di "servizio di lusso" per il cliente;) Ma penso che sarebbe bello, se è facile da implementare.


Questa domanda è in realtà risolto, come ho scoperto che ci sono funzioni utili come uigetfile e uiputfile per il mio caso particolare. Ma il caso generale delle mie domande rimane irrisolto o almeno non ho testato l'approccio java.

risposta

3

Ho paura di utilizzare l'integrato inputdlg senza modifiche, questo non è possibile. Almeno non c'è una funzione 'nascosta' che lo consenta.

È necessario accedere all'oggetto java TextField sottostante per tale scopo. È possibile copiare inputdlg in un nuovo posto e crearne una versione personale.

In combinazione con l'utilità findjobj esiste in linea di principio la funzionalità desiderata. http://www.mathworks.com/matlabcentral/fileexchange/14317-findjobj-find-java-handles-of-matlab-graphic-objects Le cose potrebbero apparire come questo allora:

% create the edit-field: 
h = uicontrol('style', 'edit',...); 
% get the underlying java object 
% this should be a javahandle to a JTextField 
jtextfield = findjobj(h); 
% set start/end of the selection as desired: 
jtextfield.setSelectionStart(startPos); 
jtextfield.setSelectionEnd(endPos); 
+0

'inputdlg' non sembra al lavoro "autonomo" e non riesco a trovare la funzione mancante' getnicedialoglocation' (bel nome btw.). Tuttavia sembra piuttosto complicato solo per ottenere un po 'di più funzionalità. Penso che non ne valga la pena e lo rimanderò. Grazie lo stesso! – thewaywewalk

+1

È possibile trovare tale funzione in '/toolbox/matlab/uitools/private'. Comunque probabilmente hai ragione, non ne vale la pena se è solo un "bello da avere" ... – sebastian

Problemi correlati